rrweb README

The project's README from github.com/rrweb-io/rrweb. As one markdown file: README.md.

Try rrweb

rrweb

(new!) rrweb cloud - hosted rrweb backend is now available

Join the chat at slack Twitter Follow Reddit record bundle size replay bundle size CDN catalog

中文文档

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

Guide

📚 Read the rrweb guide here. 📚

🍳 Recipes 🍳

📺 Presentation: Hacking the browser to digital twin your users 📺

Project Structure

rrweb is composed of the following principal parts:

Roadmap

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

For the latest setup, testing, and pull request workflow, see Contributing to rrweb.

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

Using the REPL tool

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site.

Gold Sponsors 🥇

sponsor sponsor sponsor sponsor sponsor sponsor sponsor

Silver Sponsors 🥈

sponsor sponsor sponsor sponsor sponsor sponsor sponsor

Bronze Sponsors 🥉

sponsor sponsor sponsor sponsor sponsor sponsor sponsor sponsor sponsor

Backers

Core Team Members

Justin Halsall
Juice10
open for rrweb consulting

eoghanmurray


Yun Feng

Who's using rrweb?

SmartX PostHog Smart screen recording for SaaS
Sentry Pendo Mixpanel Datadog
Amplitude New Relic The first ever UX automation tool Remote Access & Co-Browsing
The open source, fullstack Monitoring Platform. Comprehensive data analytics platform that empowers businesses to gain valuable insights and make data-driven decisions. Intercept, Modify, Record & Replay HTTP Requests. In-app bug reporting & customer feedback platform.
Self-hosted website analytics with heatmaps and session recordings. Interactive product demos for small marketing teams

rrweb (rrweb-io/rrweb)

Searching Database…

20.3K ·GitHub
What is this?rrweb ('record and replay the web') is an open-source tool for recording and replaying users' interactions on a website — DOM-level session replay you embed in your own app, in the spirit of Fullstory or LogRocket.
Is it a hosted service or a library I add to my own site?It's a set of open-source libraries you add to a web app, not a SaaS: rrweb-snapshot, record, replay, and rrweb-player. A hosted backend called rrweb cloud is also now available.
How do I get started recording a session?The README links to the rrweb guide for the full walkthrough; the first step is installing the rrweb package from npm into your web app and starting the recorder.
Do I need my own backend to store the recordings?You need somewhere to store recorded sessions: rrweb cloud is a hosted option, and the roadmap lists a storage engine that deduplicates large numbers of sessions. Otherwise storage is your own build.
Does it capture network requests like XHR and fetch?Not out of the box: capturing network activity (XHR, fetch, GraphQL) is only planned via a new plugin API, and a token-efficient AI session replay format is still in progress.
So do I wire this into my own product — my users never see rrweb itself?Right: developers and product teams embed the recorder in their own web app and replay sessions on their side — the README lists monitoring, analytics and bug-reporting platforms built on rrweb.
Does it work only for web pages, or can it record native apps too?Web only — it records the DOM of web pages in the browser and replays them there; rrweb-player is a web UI on top of the replay engine.
What does a recording actually capture?Recordings capture every HTML state change and user interaction on the page, so whatever is rendered or typed can land in the event stream; the replay side runs in a sandbox.
How does the recording work under the hood?An initial snapshot converts the DOM and its state into a serializable data structure with unique identifiers, then rrweb records incremental mutations and user interactions as the user browses. Replay rebuilds the snapshot and plays back the event stream.
Can one recording span multiple page loads?Yes — multiple page loads can be chained together into a single recording.
Is there a ready-made player UI?Yes, rrweb-player — a GUI on top of the replay package with pause, fast-forward, and drag-and-drop to play from any point in time.
Can rrweb-snapshot be used on its own?Yes — it can produce a static HTML-based 'screenshot' of the current page state with all JavaScript deactivated, no recording needed.
Creator
rrweb-io
Size
13.1 MB
Stars
20.3K
Age
8y
Commits · 90 Days