Watch the moment it went wrong.

Session replay shows what someone saw and did, with the console, network requests and errors beside it. Private text is masked before it leaves the browser.

What you do

Decide what's recorded

Recording starts with the same snippet as everything else. By default, text and form input are masked in the browser, so private content is never sent. You unmask the parts that are safe, element by element.

  • Network request and response bodies are kept only for URLs you allow, and sensitive headers are stripped.
  • Choose a sampling rate if you don't need every session.
  • Recordings expire at the end of your plan's retention period.
Illustration: masked fields in a recording, with one field unmasked on purpose.

Find the right session

Search by who the person is and by what they did: "did X", "didn't do Y", "X then Y", errors, rage clicks, browser or country. Save searches, collect sessions in playlists, and share a link that starts at the right second.

Illustration: a session search for people who opened billing but didn't upgrade.

What you see

Your users see nothing at all: recording is invisible and runs off the main thread.

A player built for debugging

Skip the idle stretches, change speed, and follow events on the timeline. Devtools panels stay in sync with the video: console, network, errors and performance, at the exact moment you're watching.

Leave notes on a session for your team, or watch a live session as it happens.

Illustration: the replay player paused on a failed request, with the console panel open.

What it connects to

Replays belong to the same people and events as your analytics, so a person's profile lists their sessions and session search uses the events you've already labelled. When you find a problem, turn the moment into a bug report with the replay attached; see bug capture.

Try it in your own app.

Every feature, free for 14 days. No card needed.