[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"branding":3,"analytics":7,"article-replaya-streams-live-browser-session-replays-on-a-single-s2-feed":10},{"siteName":4,"siteTagline":5,"publisherName":4,"contactEmail":6},"The Revision","Tech news, decoded.","editor@therevision.news",{"gaMeasurementId":8,"adsenseClientId":9},"G-ZW2MV82GYR","ca-pub-8533917693782264",{"article":11},{"id":12,"slug":13,"title":14,"dek":15,"body_md":16,"tags_json":17,"published_at":18,"created_at":19,"updated_at":20,"status":21,"review_note":22,"review_notes":23,"image_url":22,"persona_id":22,"persona_name":22,"section":22,"tags":24,"sources":28,"feedback":32,"feedback_at":22,"cost_usd":32,"total_tokens":32},222,"replaya-streams-live-browser-session-replays-on-a-single-s2-feed","RePlaya streams live browser session replays on a single S2 feed","An open‑source tool uses one S2 stream per session to serve rrweb replays with near‑real‑time tailing, avoiding the usual ingest‑index pipeline.","RePlaya lets you replay browser sessions straight from a self‑hosted S2 stream.\n\nThe developer behind s2.dev released RePlaya on GitHub. It records rrweb events into a dedicated S2 stream for each browser session, then reads that same stream to feed a playback UI via Server‑Sent Events. Large snapshots are split across binary S2 records and reassembled on the fly. Session lists are derived from stream names that encode reverse timestamps, and the system relies on S2’s built‑in retention and fencing to prune old data without extra jobs.\n\nBecause the architecture collapses the typical ingest‑firehose, message queue, metadata store, and blob layer into a single dependency, developers get lower latency and fewer moving parts. The live‑tail feature works straight out of the box, which is useful for debugging or compliance where you need to watch a session as it happens without sending data to a third‑party service.\n\nThe approach is only as good as your willingness to run S2 yourself, and it won’t magically replace feature‑rich analytics platforms that already aggregate metrics at scale.","[\"session-replay\",\"self-hosted\",\"stream-processing\"]","2026-06-02T17:40:15.000Z","2026-06-02T18:53:08.753Z","2026-06-05T16:22:28.975Z","published",null,[],[25,26,27],"session-replay","self-hosted","stream-processing",[29],{"name":30,"url":31},"Hacker News","https:\u002F\u002Fgithub.com\u002Fs2-streamstore\u002Freplaya",0]