explaingit

s2-streamstore/replaya

Analysis updated 2026-05-18

75TypeScriptAudience · developerComplexity · 4/5Setup · moderate

TLDR

A self-hosted tool that records and replays website visitor sessions, storing everything in one S2 stream instead of a database.

Mindmap

mindmap
  root((repo))
    What it does
      Records site sessions
      Live replay
      Stores in one S2 stream
    Tech stack
      TypeScript
      Node.js
      S2
      rrweb
    Use cases
      Replay finished sessions
      Watch live sessions
      Mask sensitive inputs
    Audience
      Developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Record what visitors do on your website and replay their sessions later

USE CASE 2

Watch an active visitor session live, without waiting for any processing delay

USE CASE 3

Add form field masking automatically so passwords and personal data never leave the browser

USE CASE 4

Replace a multi-service session replay backend with one Node.js server plus S2

What is it built with?

TypeScriptNode.jsS2rrwebExpressVite

How does it compare?

s2-streamstore/replayaabeehive/annadoantfu/vite-dev-rpc
Stars757575
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-05-01
MaintenanceMaintained
Setup difficultymoderateeasymoderate
Complexity4/52/52/5
Audiencedevelopervibe coderdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires an S2 account or self-hosted S2-compatible deployment plus an access token and basin.

No license information was found in the README.

In plain English

RePlaya is a self-hosted session replay tool, meaning it lets you record what visitors do on your website (mouse movements, clicks, scrolls, form interactions) and watch those recordings back later. What makes it different from most session replay systems is that it stores each recording session directly in S2, a streaming data service, rather than splitting storage across a database, a message bus, and an object store. Because S2 streams can be read as data arrives, RePlaya can also play back a session live while the visitor is still on the page. You open the dashboard and see an active session appearing in real time, without waiting for any ingest or processing delay. Finished sessions can be scrubbed through like a video timeline. Adding recording to a website is a small JavaScript snippet. You paste the script tag into your HTML, point it at your RePlaya host, and sessions begin flowing in. By default, all text typed into form fields is masked before it leaves the browser, so passwords and personal data are never sent to the server. You can also mark specific page regions with a CSS class to exclude them from recordings entirely. On the backend, RePlaya runs as a single Node.js server. You need an S2 account (or a self-hosted S2-compatible deployment) to hold the stream data. The setup requires providing an S2 access token and a basin name in an environment file, then running standard npm/pnpm install and start commands. The dashboard and read APIs are meant to stay private behind a VPN or access control layer, only the collector endpoints that receive recordings from browsers need to be public. The project is written in TypeScript and uses rrweb, an open-source browser recording library, for the capture side. The README includes a full architecture document reference and a comparison table showing how a typical session replay backend uses multiple services where RePlaya uses one server plus S2.

Copy-paste prompts

Prompt 1
Help me set up RePlaya with an S2 access token and basin in my .env.local file
Prompt 2
Explain how RePlaya stores and live-tails sessions using S2 streams instead of a database
Prompt 3
Show me how to add the RePlaya recorder snippet to my website and mask sensitive form fields
Prompt 4
Explain how to keep RePlaya's dashboard and read APIs private while exposing only the collector endpoints

Frequently asked questions

What is replaya?

A self-hosted tool that records and replays website visitor sessions, storing everything in one S2 stream instead of a database.

What language is replaya written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, S2.

What license does replaya use?

No license information was found in the README.

How hard is replaya to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is replaya for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.