why it broke.
Session replay that explains every bug and cites the moment it happened.
Masked on the device before upload, so it is safe for patient data.
Click a claim. Land on the moment.
Signals 0 fired
Why generated from this session
A front desk walks a new patient through details and insurance, then a card photo the server rejects. Names were masked on the device, so they replay as dots.
Signals 0 fired
Why generated from this session
A shopper tries a promo code three ways before the server accepts it, then a layout shift moves the Pay button out from under their click.
Signals 0 fired
Why generated from this session
A sitter station idles in monitor mode for 42 minutes until a stream token request fails and a camera feed drops. Inactivity is skipped.
-
From a click to a fix
Demo session 7F3K 14:02- Patient
- •••• ••••••
- Member ID
- •••••••••
- Events
- 126
Masked on the deviceFirst it is recorded, masked. Text, typing and images are replaced on the device before anything is sent. The server never receives them.
- Demo session 7F3K 14:02
- Patient
- •••• ••••••
- Request
- POST 413 0:13
- Rage click
- 3× 0:14
4 signals firedThen a signal fires. Twenty-two detectors watch every session for rage clicks, dead clicks, failed requests, frozen screens and abandoned forms.
- Demo session 7F3K 14:02
- Broke
- Upload over 10 MB 0:13
- Cause
- No size check
- Confidence
- 86%
Explained, 4 citationsThen Why explains it. Every claim links to the moment, the request or the line of code it came from. Click one and the replay jumps there.
- Demo session 7F3K 14:02
- Repro
- Playwright test
- Fix
- Check size first
- Same issue
- 143 this week
Ready to fixThen you fix it. Send repro steps and a Playwright test to your tracker, or hand the session to a coding agent over MCP.
The whole story in one panel.
When watching is not enough, step in.
Each stop on this line is a separate request the user can refuse or end.
- Co-browseSee the page live, from the same masked stream as the recording. No screen share, nothing new leaves the device.
- VoiceAn audio-only call through a relay that works from hospital and corporate networks. Recording it is a separate consent.
- AnnotateCircle the right button or draw an arrow. Drawings fade after ten seconds and cannot click or type.
- ActTake control and fix it for them. They watch you do it and can take control back at any time.
You have been recorded since you arrived.
Your pointer, your scrolling, and the changes this page made to itself, kept in this tab and never uploaded. Replay it and see what the recorder would flag.
Recording locally… move, scroll, and click around this page.
0 pointer samples, 0 clicks, 0% deepest scroll, in the last 30 seconds.
Signals from your session 0
Nothing has fired yet. The recorder is watching for:
- Rage clickThree clicks within a second in one spot.
- Dead clickA click on something that does nothing.
- Thrashed cursorFast, aimless movement with no click.
- Scroll depthPast three quarters of the page.
Everything here stays in this tab. The stage is this page's own DOM, rebuilt from a local snapshot with form values masked and then replayed from the changes the page made to itself — the same reconstruction the player does for a recorded session — and the signals are the recorder's rules running against your own movements.
Plans
Free
For one app and the first bugs worth knowing about.
1,000 stored sessions and 100,000 custom events a month, 7-day retention, the full Player, Signals, heatmaps and Slack alerts, $5 of AI credit, unlimited seats. Add a card later for 4¢ per extra session.
$0a month
Team
For a product with real traffic and people who need answers today.
10,000 stored sessions and 2,000,000 custom events a month, 30-day retention, $50 of AI credit with automatic explanations, funnels, Jira, Linear and GitHub, the MCP server, 1,000 Live Assist minutes, 5 projects. No seat fees. Extra sessions 1.5¢ each.
$199a month
Free for 1,000 stored sessions a month, with unlimited seats. Create a workspace and add one script tag.
Start