How Sonder works

One issue. Every session. The whole lifecycle.

Sonder turns product behavior into a finite issue registry, gives every issue a cause and a proof metric, then stays after deploy to see whether the fix actually worked.

01CaptureBehavior, by meaning
02DiagnoseCause, with evidence
03ShipSmallest credible fix
04VerifyFresh behavior decides
01 · Capture

A ribbon of meaning, not a recording.

Sonder records what happened in the product—labels, roles, sections, and parametrized routes. Repeated actions collapse before they leave the browser. When friction fires, a tiny state probe records what the user actually saw.

  • No video or screenshots
  • No input values or raw DOM
  • Routes and sensitive text masked at source
session_9fa1Live
view/projects/:id09:41:02
click“Tag dropdown” · select · Tasks×13
rageclick“Tag dropdown” · select · Tasks×4
State at friction
empty_state
true
error_visible
false
input_value
[masked]
127 raw events9 meaningful steps
02 · Diagnose

Recurring behavior gets a stable identity.

Eighteen similar sessions do not become eighteen insight cards. They update UX-07—one issue with a history, impact, likely cause, and attached evidence.

A skeptic gate rejects vague explanations. If the evidence does not support a concrete cause, the issue stays unconfirmed.

UX-07 Tag assign rage loopWorsening
Users44Sessions63ImpactHigh
Likely cause · 0.91 confidence

The dropdown unmounts before the selection commits.

Clicks land, but closing the menu cancels the pending mutation. Users reopen it and try again.

Evidence attachedempty_state: trueerror_visible: falserepeat_clicks: 13
03 · Ship

The issue arrives ready for action.

Sonder scopes the smallest credible fix and packages the cause, evidence, affected path, and proof metric for the coding agent your team already uses. A human still reviews and ships every change.

Explore the agent tools
Fix UX-07Sonder attached 4 resources
Ready
sonder.get_issue
cause
Dropdown closes before commit
file
components/TagPicker.tsx
proof
rageclicks / tag session < 1.0
- closeMenu()
+ await settleSelection()
+ closeMenu()
Human review requiredOpen patch  →
04 · Verify

“Deployed” is a timestamp. “Resolved” is a finding.

Build IDs separate before from after. When fresh sessions move the issue’s proof metric past its target, Sonder resolves it. If the pattern returns in a later release, the same issue reopens.

Resolved from evidence4.2 → 0.618 post-deploy sessions · still watching
Proof metricRageclicks per tag session4.20.6
v2.4.1 deployedtarget zone
See the loop on your data

Your first issue is closer than your next dashboard.

Connect PostHog or Amplitude for a read-first pass. Add the SDK later when richer context earns its place.