# rrweb-io/rrweb

record and replay the web

Repository: https://github.com/rrweb-io/rrweb
Canonical: https://ross.abutalabs.com/products/rrweb
Homepage: https://www.rrweb.io/
Language: TypeScript
License: MIT
License Family: permissive
Topics: session-replay, recorder, logrocket, fullstory, hotjar
Last push: 2026-08-24T05:55:42+00:00

## Health v2 (maintenance only)
Score: 93/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 82, longevity 100
- inputs: {"age_days": 2888, "days_push": 9, "days_rel": 42, "gap_med": 0, "n_releases_24m": 78}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 20081, forks 1691 (observed 2026-08-28T04:11:29.636560+00:00)

## What it is
rrweb is an open-source TypeScript library that records user interactions and DOM state changes in the browser and replays them as session replays. It consists of snapshot, record, replay, and player packages, and serves as the recording engine inside products like Sentry, PostHog, and Datadog.

## Use cases
- record and replay user sessions on a website
- attach session replays to error reports for debugging
- build a session replay feature into an analytics or observability product
- capture what a browser automation agent saw during a failed run
- ship a bug reporter that includes a reproduction of the failure
- analyze user behavior funnels and friction points
- create guided product demos from real sessions

## When to choose
- you need DOM-level session replay under your own branding or self-hosted
- you want the proven open-source engine used by major observability and analytics tools
- you need fine-grained control over recording, storage, and replay pipelines
- you want to embed replay as a native feature of your product

## When to avoid
- you want a fully managed hosted solution with zero infrastructure (consider rrweb Cloud or commercial vendors instead)
- you only need simple click analytics without full DOM replay
- recording full DOM state raises privacy or compliance concerns you cannot mitigate
- your app has strict bundle-size budgets, as the recorder and replayer add nontrivial weight

## Facets
- artifact type: library
- maturity: stable
- function: serialization, developer-tools, monitoring, analytics
- domain: web-development, frontend, analytics, developer-tools, monitoring
- platform: browser, cross-platform
- tags: session-replay, dom-recording, browser-recording, user-interaction-tracking, typescript, open-source, web-server, nodejs

## Member repositories
- rrweb-io/rrweb (main) score 93

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:29.636560+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:59:21.624000+00:00, confidence not recorded.
  - readme: https://github.com/rrweb-io/rrweb (fetched 2026-08-28T04:11:29.636560+00:00, sha 3e5dab44f6b6)
  - homepage: https://www.rrweb.io/ (fetched 2026-08-29T07:58:17.307406+00:00, sha b63215d984e3)
  - site_page: https://rrweb.com/docs (fetched 2026-08-29T07:58:17.310351+00:00, sha 3e4e73d49864)
  - site_page: https://rrweb.com/about (fetched 2026-08-29T07:58:17.314215+00:00, sha 4bf1272cd547)
  - registry_npm: https://registry.npmjs.org/rrweb (fetched 2026-08-29T07:58:17.316017+00:00, sha 23ecaf03f280)
  - site_page: https://rrweb.com/pricing (fetched 2026-08-29T07:58:17.312395+00:00, sha fe172ef105b3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
