Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
    Raja Venkataraman
    Hi. Thanks for the amazing library, Ive tried both rrweb and rrweb-player but when adding a event using the addEvent method, it doenst seem to update the time at the bottom. It stays with the duration of the first event that was passed to Replayer or rrwebPlayer. Is there a way to update the time as the events are getting added (say, through a websocket) ?
    Just found rrweb-io/rrweb-player#62 and rrweb-io/rrweb#549.. Is this the way to go forward. ?
    Bernhard Hörmann
    @ryangjchandler: Do you mean something like this:
    i am having the same issue - no solution.
    Hey All, RRWeb looks awesome, and arguably the only decent solution for session replay. I was wondering how you are all logging/integrating this? I was considering logging to ELK and creating a Kibana visualization to show these, but its a lot of work to go to and I suspect there are existing solutions.
    Bernhard Hörmann
    Has anybody integreted it successfully with pages behind authentication?
    Arnav Chaurasia
    may i know when will be the next release of rrweb
    when can we use the mask text option i do not want to record my text
    Arnav Chaurasia
    anyone there ?
    Justin Halsall
    It looks like rrweb is gearing up for a 1.0 release. I suspect the next release that might come up would be a beta 1.0
    No idea on timing though
    Hi guys is there any updates on these issues
    Onur Solmaz

    Hi all! Just found out about rrweb, and I'm considering it as a replacement for Microsoft Clarity in order to preserve the privacy of my users.

    I've been looking for a guide to configure the backend API to receive the recordings, but I can't find any. Is rrweb ready to record user sessions at production yet?




    Hello, whenever I run the replay.play I get warnings are nothing plays
    The recording is fine and is stored in a array which is then passed to replay object when its init

    1.0 release note?
    Justin Halsall
    @solmaz:matrix.org you can use any type of backend you’d like really. It doesn’t matter for rrweb. All the backend has to do is accept an http request with an array of events and save that. You can use any language, framework, database you’d like. Whatever you are familiar with is probably the right choice. I’m using Ruby on Rails, with a postgress database. But you could even save the events to S3 if you’d like, I know a lot of other people are doing that
    The event format is stable and hasn’t really changed from 0.9.x to 1.0 beta. I think you should be ok running it in production either now or as soon as 1.0 is released.
    Hi from webdev522 who likes rrweb!

    Sorry for not being active in Gitter channels.
    Due to the unstable accessing to Gitter from China, and the poor notification support, we(the recently organized core team) decide to move to slack.
    Here is an invitation link: https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg

    We believe this will provide a far better community experience for anyone who loves rrweb.

    Milan Cakic

    I am having a challenge getting the replay system to work. Any insight would be appreciated. Issues:

    1. Parsing the events text to create a JSON object creates a parse error, which seems to be fixed by using replace(/[\u0000-\u001F]+/g,"").
    2. I then encounter an error in the player related to 'appendChild'.

    Uncaught TypeError: Cannot read property 'appendChild' of null
    at t.setupDom (index.ts:202)

    let events = JSON.parse('{"events": [{"data": {"href": "http://localhost:8080/record/demo?", "width": 2117, "height": 952}, "type": 4, "timestamp": 1628792519814, "session_id": "1628792519814"}, {"data": {"node": {"id": 1, "type": 0, "childNodes": [{"id": 2, "type": 2, "tagName": "html", "attributes": {}, "childNodes": [{"id": 3, "type": 2, "tagName": "head", "attributes": {}, "childNodes": [{"id": 4, "type": 3, "textContent": "\n"}, {"id": 5, "type": 2, "tagName": "link", "attributes": {"rel": "stylesheet", "href": "https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.css"}, "childNodes": []}, {"id": 6, "type": 2, "tagName": "script", "attributes": {"src": "https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js"}, "childNodes": []}, {"id": 7, "type": 3, "textContent": "\n\n"}, {"id": 8, "type": 2, "tagName": "script", "attributes": {}, "childNodes": [{"id": 9, "type": 3, "textContent": "SCRIPT_PLACEHOLDER"}]}, {"id": 10, "type": 3, "textContent": "\n\n"}, {"id": 11, "type": 2, "tagName": "title", "attributes": {}, "childNodes": [{"id": 12, "type": 3, "textContent": "This page title"}]}]}, {"id": 13, "type": 3, "textContent": "\n\n"}, {"id": 14, "type": 2, "tagName": "body", "attributes": {}, "childNodes": [{"id": 15, "type": 2, "tagName": "h1", "attributes": {}, "childNodes": [{"id": 16, "type": 3, "textContent": "Demo Page"}]}, {"id": 17, "type": 3, "textContent": "\n\n"}, {"id": 18, "type": 2, "tagName": "form", "attributes": {}, "childNodes": [{"id": 19, "type": 3, "textContent": "\n"}, {"id": 20, "type": 2, "tagName": "input", "attributes": {"id": "name", "type": "text"}, "childNodes": []}, {"id": 21, "type": 3, "textContent": "\n"}, {"id": 22, "type": 2, "tagName": "input", "attributes": {"id": "submit", "type": "submit", "value": "Submit"}, "childNodes": []}, {"id": 23, "type": 3, "textContent": "\n"}]}, {"id": 24, "type": 3, "textContent": "\n\n\n"}]}]}]}, "initialOffset": {"top": 0, "left": 0}}, "type": 2, "timestamp": 1628792519816, "session_id": "1628792519814"}, {"data": {"source": 1, "positions": [{"x": 211, "y": 75, "id": 22, "timeOffset": 0}]}, "type": 3, "timestamp": 1628792520550, "session_id": "1628792519814"}, {"data": {"source": 1, "positions": [{"x": 221, "y": 58, "id": 14, "timeOffset": -439}, {"x": 233, "y": 27, "id": 15, "timeOffset": -389}, {"x": 237, "y": 12, "id": 15, "timeOffset": -339}, {"x": 241, "y": 5, "id": 2, "timeOffset": -289}, {"x": 249, "y": 4, "id": 2, "timeOffset": -239}, {"x": 273, "y": 15, "id": 15, "timeOffset": -189}]}, "type": 3, "timestamp": 1628792521052, "session_id": "1628792519814"}]}'.replace(/[\u0000-\u001F]+/g,""))['events'];

    const replayer = new rrweb.Replayer(events);

    This looks to be fixed when calling replayer on load.
    So css animations don't get tracked with record
    .App-logo {
    animation: App-logo-spin infinite 20s linear;
    is there a way to capture these animations?
    The code snippet above is from CRA
    Prashant Bhatkal
    Any Good resource for creating database schema for rrweb???
    is anyone able to get the live mode working with a react app?