RePlaya – self-hosted browser session replay with live tailing
One stream per session enables live tailing without message queues or OLAP databases.
Self-hosted browser session replay built on S2 with live tailing
Live session tailing via streams beats standard database-backed replay tools.
Developers needing privacy-focused session replay, S2 users
PostHog · OpenReplay · LogRocket
I hacked this because it popped into my head that browser session replay could be modeled almost entirely with durable streams. There's no separate database, queue, or search index for the recording itself. It's a Node app you can self-host.
S2 gives this use case durable storage, ordered appends, timestamped playback, and live tailing from the same primitive. You can point RePlaya at a self-hosted S2 instance with open source s2-lite (https://news.ycombinator.com/item?id=46708055).
How it's implemented:
- one S2 stream per browser session - large rrweb events, like full snapshots, framed across multiple binary S2 records and reassembled on read - active sessions tailed with an S2 read session and bridged to the browser over SSE - session listing from reverse-time stream names, so lexicographic listing returns newest sessions first - a small sidecar stream for live "new session appeared" updates to the first page - fencing tokens so a stopped session can't be written to again by a late recorder - retention and GC of streams handled by S2 config, so no cron or cleanup job needed
RePlaya is pretty young, but I'm curious whether this "one durable stream per replay" shape is interesting to others.
One stream per session enables live tailing without message queues or OLAP databases.
Self-contained HTML replays beat screenshots, but solves niche problem for Claude Code users.
Persistent TLS streaming from vehicle to your hardware beats polling.
WebRTC P2P file drop with no backend; but privacy UX is crowded (SnapDrop, OnionShare).
Lightweight monitoring for self-hosted LiveKit when LiveKit Cloud exists.
Session replay TUI for Claude Code learning, but limited to existing session logs.