What does HackerNews think of rrweb?

record and replay the web

Language: TypeScript

Hey! Sure thing. Our frontend session replay happens in two parts:

1. The HTML DOM Recording using rrweb (https://github.com/rrweb-io/rrweb) 2. The monkey patching of fetch, xhr, console methods, combined with data from `window.performance`

The rrweb repo has a good in-depth explanation of how the DOM recording works. In short, it captures the full HTML of a page when a user first loads it, then tracks DOM changes via the `MutationObserver` api. From our client, these are all shipped to our backend as serialized events. We process the events per 'user session', storing them temporarily in redis, then compressing a permanent payload once the session no longer is sending new events in the local filesystem or S3.

Monkey patching network and console methods allows us to capture request/response payloads, headers, status code, etc. We then combine that data with the `window.performance` api's notion of network requests to ensure we capture all requests (even ones that happened before our monkey-patch had time to apply), as well as to get precision timing data.

Happy to give more detail about parts of our stack if you're interested!

Thank you for the wishes here! That is very kind of you.

> Open sourcing

Openreplay is awesome, but we ended up building heavily on top of rrweb (https://github.com/rrweb-io/rrweb). Did you know they have their own documentary on the project? I only noticed that today.

Two open source alternatives: https://github.com/oct16/TimeCat and https://github.com/rrweb-io/rrweb we are working - at Telecom Paris - on synchronizing audio recording as well for pedagogical reasons (for example making programming tutorials) here https://github.com/Telecom-Paris/generic-rrweb-recorder . You can also try our "ace editor" specific recorder to make c programming and python programming tutorials https://github.com/France-ioi/codecast look at the recordings we have created here https://www.edx.org/course/c-programming-getting-started it includes a client side c interpreter . If you know any other tool to make pedagogical tutorials please let me know!