Skip to content

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
Step-by-step guide: how to use rrwebInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js

    Clone the repository

    git clone https://github.com/rrweb-io/rrweb.git
  2. 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. 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.