We couldn't stomach the session replay bill, so we built it
We had a marketing problem, and it took us a while to admit it was a marketing problem and not a "our users are wrong" problem.
We kept shipping features nobody found. We would write a page explaining something we were genuinely proud of, and the metrics said people scrolled past the whole thing. Those long, careful blocks of technical text we spent afternoons on? Skimmed, if that. We could see people arriving and leaving, but not why they left or what happened in between. Which parts of a page got read. Which got ignored. What caught the eye and what was invisible.
Analytics tell you what happened. They do not tell you why. We needed to watch how visitors actually moved through the front end.
Self-hosting PostHog, and the $30k FullStory quote
There are real products for this. PostHog and FullStory both do session replay well, and we are not pretending otherwise.
The catch is what we do for a living. People hand us their databases. That means we are careful, sometimes annoyingly so, about what runs on our pages and where anything gets sent. Whatever we used had to be front-end only and had to keep sensitive values out of the recording entirely. That ruled a lot of things out fast.
So we tried to self-host PostHog. We lost hours to it. Not "one frustrating afternoon" hours, more than that, and we came out the other side without a working setup we trusted. Then we got a quote from FullStory. The starting number was around $30,000 a year. For a tool to watch our own marketing pages. We closed the tab.
At that point building it ourselves stopped sounding crazy.
Two birds
So we built an internal tool. It was also our first real attempt at something bigger: a way to run a full application as a thin layer over a managed database, which is what eventually became the Embedded Layerbase Apps platform.
It worked. We got the insight we were after, and we got the app-hosting groundwork at the same time. The session replay tool we needed to debug our own site turned out to be the proof that we could host first-party apps at all. Now it ships as one, and anyone on Layerbase can deploy it.
What it actually does
The recorder is not video. It captures the DOM with an rrweb-style approach: a serialized snapshot plus a timestamped stream of changes and input events. Playback rebuilds the real page and replays it on a virtual clock. That means recordings stay crisp at any zoom, you can search them, and the storage footprint is tiny compared to a screen capture.
Privacy masking is built in, and it is the first thing we set up. Mark an element and everything inside it is masked with a single attribute. Secrets, connection values, anything you do not want stored never leaves the page in the clear. Inputs are masked by default. You decide what stays visible, and the safe default is that sensitive things do not.
To be clear about what this is for: it shows you how people interact with your front end, which parts of a page work, and where a flow falls apart. It is a debugging and design tool. You are looking at pages, not people.
It also catches front-end bugs and pins them to the replay. Console errors, thrown exceptions, and unhandled rejections get captured as they happen and marked on the session timeline, so a bug arrives already attached to the exact moment and the exact session that hit it. There is a dedicated errors view that lists every captured error newest-first, each one linking straight to a Watch button for the session behind it. No more guessing which session the error report came from.
There is a proper dashboard around it too: search, sorting, and filters that persist in the URL, so a view worth sharing is just a link you can send to a teammate. And the whole thing runs single-tenant on a managed Postgres you own. Your sessions live in your database, not a shared pool.
Setup is a script tag
The install story is one line. You drop a script tag on the page and you are done.
<script
src="https://cdn.layerbase.dev/v1/your-site.js"
data-site-id="marketing"
data-write-key="wk_live_..."
data-ingest="https://your-app.cloud.layerbase.dev"
async
></script>You grab the exact snippet from the dashboard, paste it in, and sessions start showing up. If you get stuck, our support team will help you wire it in. It is not a project.
What it costs
Session Replay is included with the Pro plan at no extra charge. If you are already on Pro, it is sitting there waiting for you. If you do not have an account yet, Pro comes with a free one-week trial, so you can watch your first sessions without paying anything and cancel from the dashboard if it is not for you.
If you are not, it runs standalone for a flat $10 a month. Flat, as in no per-session meter and no surprise invoice at the end of a busy month. If you came here hunting for a FullStory or PostHog alternative whose price is a number instead of a quote, this is that. And here is the part worth saying plainly: you can run it on Layerbase even if you have no interest in our databases at all. It comes with the managed Postgres that stores your sessions, but you never have to think about that Postgres. If all you want is session replay, buy session replay.
Read the details on the Session Replay app page.
Where this goes
Session Replay is the first app on the platform, not the last. Down the road we want to let other developers host their dev tools on Layerbase with revenue sharing, provided the app clears a security audit first, because the whole point of this platform is that we do not run things we would not trust with a database. We are not accepting submissions yet.
If you want to see how visitors actually use your front end, without a second vendor and without a $30k starting price, deploy it from Layerbase Cloud in a couple of clicks. We built it because we needed it. It turns out we were not the only ones.