Find the sessions that broke. Fix them faster.
Replayfy records the DOM, not the screen, so a replay is a real, scrollable page rather than a video — small to store, sharp at any zoom, and searchable by the page it happened on. Every feature below is on every plan, Free included.
Find the broken sessions
Session replay
Mouse movement, clicks, scrolling, form input (masked), page changes and single-page-app navigation, replayed at the recorded viewport size with a scrubber. Sessions are stitched from chunks that arrive during the visit, not at the end — so a visitor who closes the tab still leaves a replay.
Rage clicks and dead clicks
A rage click is three clicks inside 30 pixels and one second. A dead click is a click that produced no DOM change, no scroll and no navigation — the button that looks like a button and isn't. Both are counted per session and both are filters on the session list.
Filters that surface the bad ones
Narrow a site's sessions by page address, device, length, JavaScript errors, frustration, review status and your own labels, so the ten sessions worth watching are the first ten you see.
Fix them faster
JavaScript error timeline
Errors are captured with their message and the moment they fired, and listed under the player. Click one and the replay seeks to that second. The error count and the error messages are reconciled — if the chunk carrying a message never arrived, we say so rather than showing you a confident "no errors".
Share links that expire
Send one recording to a developer or a client without giving them an account. Links are single-recording, expire (7 days by default), are revocable, and every open is written to your audit log. We store only a hash of the link.
Review status and labels
Mark a recording Reviewed, Needs attention or Ignored, and tag it with your own labels, so a team working through the same backlog never watches the same session twice.
Honest incomplete recordings
Recordings arrive in chunks over the network, and sometimes one doesn't make it. When that happens the player says which chunks are missing instead of stitching what's left and presenting it as the whole session.
Keep it private and controlled
Form fields are masked in the browser
Input, text area and dropdown values, hidden and file inputs included, are masked in the visitor's browser, before anything is sent — there is no unmask button because there is nothing to unmask. Which checkbox or radio button is ticked is still recorded: block a sensitive one with data-sr-block. A rich-text editor (a contenteditable review or comment box) is page text, not a form field: add class="sr-mask" to it, or data-mask-text="all" to the snippet. No cookies, and IP addresses are never stored. What is and isn't recorded
Per-site access for staff
Invite teammates as Admin, Member or Viewer, and tick exactly which sites each of them can open. A contractor working on one storefront sees that storefront. On every plan, Free included; unlimited teammates on every paid plan.
Audit log
Who watched which recording, who shared one, who deleted one, who changed a role. Views are rolled up to one entry per person per recording per day so the log stays readable; everything else is logged every time. Kept for two years — longer than any recording it describes.
Delete any single recording, immediately
Removed from the database and from object storage there and then, not queued for a nightly job, and without touching any other recording on the site. There is no one-step "delete everything for this person" yet. If your site identifies logged-in users with __sr.identify(), support finds and deletes the recordings linked to a user id on request; an anonymous visitor cannot be tied to their recordings, because there is no cookie and no persistent identifier.
Built for AI agents
A REST API and an MCP server come with every plan, Free included, and both are rate-limited. Connect Claude, Cursor or any MCP client with a workspace API key and it can list your sites and recordings, filter them the way the dashboard does, read a recording as a short structured digest — counts, an ordered account of what happened, error signatures — group errors into clusters, and mark what it has reviewed.
Over MCP an agent never receives the raw recording, only the digest: element selectors and error messages, not the text on your pages (short button labels only if you switch that on for a site). Opening, sharing or reviewing a recording with a key goes into the same audit log as your team's actions.
What it doesn't do yet
Said plainly, because you will find out in week two anyway.
- No heatmaps. Aggregated click and scroll maps are the one thing every competitor in this category ships and we do not. The capture design is finished; the feature is not built. If heatmaps are the reason you're shopping, we are not your tool yet.
- No funnels. You can filter sessions by page, errors, frustration, device and length, but there is no step-by-step conversion report.
- No checkout replay on Shopify. Recording stops at Shopify's checkout by design.
- Cross-origin iframes, canvas and WebGL don't replay. That is a limit of DOM recording itself, not of our build. A Stripe iframe or an embedded video renders blank in the replay.
- No native mobile apps. Replayfy records web pages only.
Try it on your own store today
Free for 2,000 sessions a month, no card, no trial clock. Paste one script tag and the first replay usually appears within a minute.