Try rrweb

# rrweb **This is a simpler version of the [original rrewb README](../../README.md) within this rrweb subpackage** [δΈ­ζ–‡ζ–‡ζ‘£](../../README.zh_CN.md) 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. πŸ“š**](../../guide.md) [**🍳 Recipes 🍳**](../../docs/recipes/index.md) ## Project Structure **[rrweb](https://github.com/rrweb-io/rrweb)** mainly includes two funtions: - **Record**: The record function is used to record all the mutations in the DOM - **Replay**: The replay function is to replay the recorded mutations one by one according to the corresponding timestamp. ## Roadmap - rrdom: an ad-hoc DOM for rrweb session data [#419](https://github.com/rrweb-io/rrweb/issues/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 - [serialization](../../docs/serialization.md) - [incremental snapshot](../../docs/observer.md) - [replay](../../docs/replay.md) - [sandbox](../../docs/sandbox.md) ## 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](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html) 1. Fork this repository. 2. Run `yarn install` in the root to install required dependencies for all sub-packages (note: `npm install` is _not_ recommended). 3. Run `yarn dev` in the root to get auto-building for all the sub-packages whenever you modify anything. 4. Navigate to one of the sub-packages (in the `packages` folder) where you'd like to make a change. 5. Patch the code and run `yarn test` to run the tests, make sure they pass before you commit anything. 6. Push the code and create a pull request. Protip: You can run `yarn test` in the root folder to run all the tests. In addition to adding integration tests and unit tests, rrweb also provides a REPL testing tool. [Using the REPL tool](../../guide.md#REPL-tool) ## Core Team Members

Yuyz0112

Mark-Fenng

eoghanmurray

Juice10
## Who's using rrweb
The first ever UX automation tool
Remote Access & Co-Browsing