Full snapshot

A full snapshot is the session replay event that captures the complete serialized DOM at a point in time, giving the replayer a self-sufficient starting state. In the rrweb event format it is event type 2, and every recording begins with one, followed by incremental snapshots describing changes.

How it works

When recording starts, rrweb serializes the entire document and emits it as a single event. The events documentation describes how full snapshots establish the replay baseline. Everything after that references this baseline: an incremental event saying "node 42 moved" only means something relative to the snapshot that defined node 42. A full snapshot of a typical single-page app runs from tens of kilobytes to a few megabytes uncompressed, which is why recordings take one initial snapshot plus deltas instead of snapshotting continuously. New full snapshots can be forced mid-recording with record.takeFullSnapshot() or scheduled via checkout options.

Where you encounter it

In stored recordings as the large type: 2 events, in storage bills, and in replay seek behavior: a player seeking to minute 40 starts from the nearest prior full snapshot and fast-forwards, so checkout frequency controls seek speed.