Skip to content
TraceItX Docs
Documentation

Session replay

A short replay of what actually happened, captured natively — not a screen recording.

Updated

The native side keeps a rolling window of what the app rendered in memory. When a report is filed that window is frozen and attached; the rest is discarded. Nothing is uploaded unless someone files a report, and there is no screen-recording permission prompt.

Turning it on

Server-gated — enable it for the app in the dashboard, and the SDK picks it up from GET /api/config on the next start. There is no client-side switch for replay in the React Native SDK — the server gate is the only control. If you need it off for a particular build, turn it off for that app in the dashboard.

Format

React Native replays are traceitx-vtree-v1, the native format — not rrweb. The recorder runs below your JS, so it captures what the device actually rendered rather than what React thought it rendered.

It is a frame timeline, not video: a viewport, a list of frames, and per-frame operations on a lightweight node tree carrying role, frame, text, bg and masked. That keeps a replay in the tens of kilobytes and means text stays text — searchable, and redactable before it leaves the device.

Images are content-addressed and optional; the server’s asset mode decides whether they travel at all. See Server config.

Privacy

Views marked sensitive carry masked: true and paint as a solid block. The masking happens in the producer, before the blob is written — masked content never exists in the buffer. See Sensitive content.

Cost

The recorder runs on the native UI thread’s cadence, not on every React render, so a chatty render tree does not multiply the work. replayDurationSec on the server bounds the window; samplingRate decides what fraction of sessions allocate a buffer at all.