
rrweb
A TypeScript library that records web page changes and user actions so sessions can be replayed.
- Stars
- 20.3k
- Forks
- 1.7k
- Licence
- MIT
- Language
- TypeScript
- Last update
- 7 days ago
- Type
- Library
What it is
rrweb stands for 'record and replay the web'. It captures a page's initial state, then records DOM changes and user interactions as they happen, so a browser session can be played back later like a video. It is split into packages for snapshotting, recording, replaying, and a player UI.
- Record user sessions on a web app and replay them in a player UI (rrweb-player)
- Capture a static HTML snapshot of a page with JavaScript disabled (rrweb-snapshot)
- Chain multiple page loads into a single recording
Great for
- Developers adding session replay to a web product
- Teams debugging user-reported issues by watching what happened on the page
- Engineers who want to build their own replay tooling on an open-source base
Not ideal for
- People who want a finished, hosted analytics product with no coding, since the README centers on developer packages (the separate hosted rrweb cloud is only mentioned briefly)
- Anyone who needs to record sensitive pages without first planning privacy masking, which the README does not explain in the excerpt provided
How to get it
- 1
Install with a package manager
You'll need: Node.js
Clone the repository
git clone https://github.com/rrweb-io/rrweb.git - 2
Run it
- Read the rrweb guide at https://rrweb.com/docs/guide
- Install the record and replay packages in your web project
- Add the recorder to a page and collect events
- Load the recorded events into rrweb-player to replay them
- 3
Get the most out of it
- Use the Recipes section of the docs for common patterns
- Try the REPL testing tool described in the contribute guide
- Watch the linked presentation on using the browser to digital-twin users
Downloads
Strengths
- Open-source under the MIT license
- Modular packages let you use only the part you need
- Widely starred and actively pushed according to the metadata
Trade-offs
- The README excerpt is truncated and gives little setup detail, so integration takes reading the docs
- Recording user sessions raises privacy and consent obligations that are the adopter's responsibility
- Some plugins (XHR, fetch, GraphQL) are listed as roadmap items rather than available features
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.