Documentation menu
session-replaybeta

Session Replay: Overview

Watch what a user actually saw during a mobile session — screenshot-based replay, edge-native on Cloudflare, with configurable, dashboard-driven privacy masking.

Session Replay: Overview

Session Replay lets you watch a visual reconstruction of what a user’s screen looked like during a session on your mobile app — not a video recording, but a sequence of masked frames captured by the SDK and played back in the ScryWatch dashboard.

Note: Session Replay is in Beta / Preview. The Flutter SDK (scrywatch_replay) is published on pub.dev as a preview (0.1.0) — flutter pub add scrywatch_replay; native iOS and Android SDKs are coming. Expect the API surface described in these guides to evolve before general availability.

How it works

  1. The SDK periodically captures the current screen inside your app.
  2. Before the frame ever leaves the device, it’s run through a configurable masking pass: you tag sensitive elements in code, and a project runs in either Blocklist mode (capture everything, mask what’s tagged — the default) or Strict mode (mask everything except what’s explicitly revealed). Masking rules are set per project in the dashboard and take effect on the next session, no release required — see Masking & Privacy for the full model.
  3. The masked frame is uploaded to ScryWatch’s ingest API and stored in Cloudflare R2, associated with a session ID.
  4. You browse and play back sessions frame-by-frame from the Replay page in the dashboard — see Viewing Replays.

Because capture, masking, and encoding all happen on-device, no unmasked pixel data is ever sent over the network or stored server-side.

What you can do with it

  • See exactly what a user saw — reproduce confusing UI states, layout bugs, and unclear flows without asking the user to describe them.
  • Correlate with logs and errors — a session’s replay timeline lines up with the same session ID used across Sessions, Log Explorer, and Alerts, so you can jump from an error event to the screen the user was on.
  • Investigate without exposing sensitive data — password fields are always masked, and you control everything else: record by default and opt into masking PII (email, card numbers, SSNs, phone), WebViews, or your own tagged elements per project from the dashboard — or switch a project to Strict (deny-by-default) mode for regulated data.

Where to go next

What you’ll need

  • A ScryWatch project API key (see API Keys & Settings)
  • A Flutter app (native iOS/Android support is planned but not yet available)

Note: Because this is a Preview feature, reach out before enabling Session Replay on a production app handling regulated data (health, payments, etc.) so we can confirm the masking coverage for your UI first.