Need help with rrweb?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

10.6K Stars 834 Forks MIT License 894 Commits 83 Opened issues


record and replay the web

Services available


Need anything else?

Contributors list

Try rrweb


The rrweb documentary(in Chinese, with English subtitle)

Join the chat at slack total gzip size recorder gzip size


I have joined Github Sponsors and highly appreciate your sponsorship.

rrweb refers to 'record and replay the web', which is a tool for recording and replaying users' interactions on the web.


📚 Read the rrweb guide here. 📚

🍳 Recipes 🍳

Project Structure

rrweb is mainly composed of 3 parts:

  • rrweb-snapshot, including both snapshot and rebuilding features. The snapshot is used to convert the DOM and its state into a serializable data structure with a unique identifier; the rebuilding feature is to rebuild the snapshot into corresponding DOM.
  • rrweb, including two functions, record and replay. The record function is used to record all the mutations in the DOM; the replay is to replay the recorded mutations one by one according to the corresponding timestamp.
  • rrweb-player, is a player UI for rrweb, providing GUI-based functions like pause, fast-forward, drag and drop to play at any time.


  • rrdom: an ad-hoc DOM for rrweb session data #419
  • storage engine: do deduplication on a large number of rrweb sessions
  • more end-to-end tests
  • compact mutation data in common patterns
  • provide plugins via the new plugin API, including:
    • XHR plugin
    • fetch plugin
    • GraphQL plugin
    • ...

Internal Design

Contribute Guide

Since we want the record and replay sides to share a strongly typed data structure, rrweb is developed with typescript which provides stronger type support.

Typescript handbook

  1. Fork the rrweb component repository you want to patch.
  2. Run
    yarn install
    to install required dependencies.
  3. Patch the code and pass all the tests.
  4. Push the code and create a pull request.

In addition to adding integration tests and unit tests, rrweb also provides a REPL testing tool.

Using the REPL tool

Core Team Members





Who's using rrweb

The first ever UX automation tool

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.