Events, not pixels.
A session is a sequence of typed events with glyphs you learn once. You scan it like a log, not scrub it like a tape.
Typed events
page_load →, error ✕, rage_click ××, dead_click ·, retry ↺ — each event is structured data with a target and timing, queryable like everything else.
DOM, opt-in, stripped
Optional DOM snapshots at moments that matter. Scripts are stripped and the render is sandboxed — markup, never execution.
Evidence, not archive
Sessions attach to error groups and incident evidence — the most relevant session is one click from the backtrace.
Six glyphs. The whole story.
A rage click before an error tells you more than thirty seconds of video. The vocabulary is small on purpose — you read a session in seconds.
- rage_click: 3+ clicks, same target, under 2s
- error events link straight to the error group
No video. No scripts. No surprise PII.
Because replay is typed events, there’s no screen recording to leak what you didn’t mean to capture. Snapshots are opt-in per project, scripts are stripped on ingest, and renders are sandboxed.
- Per-project sampling rate and retention window
- Snapshots opt-in — off by default