headless.dev
← All posts

Roll the tape.

What happens when you stop reading the bounce rate and start watching it.

A visitor lands on the booking page. They drift the cursor toward Book, stop, scroll back up, hover over the price for a beat, and leave. Our analytics recorded exactly one fact about all of that: bounce.

That's the trouble with dashboards. They're fluent in what and silent on why. We could see the booking page had a rough drop-off. We could see which step of the funnel leaked. What no chart ever told us was the reason. And the reason isn't a number, it's a story. The only way to read a story is to watch it happen.

The standard way to get that footage is to build it. You reach for rrweb, wire it to capture every DOM mutation, and immediately inherit a firehose: mousemoves, scrolls, input events, mutation records, streaming off every open tab. Now you need an ingestion endpoint that won't fall over, storage that doesn't quietly triple your bill, and a player that can faithfully replay the DOM weeks later. Then the part everyone forgets until legal walks over: you have to mask every password field, every payment input, every free-text box, before you accidentally record someone typing their card number into your checkout. And you have to gate the whole thing on the consent signal: record the visitors who said yes, drop the ones who didn't, and be able to prove it. That's not an afternoon. That's a quarter. We didn't do any of that.

Session replay, in a click

Session Recordings lives inside Wix Analytics, powered by Twipla. You open Analytics in the site dashboard, click Session Recordings, and hit Get Session Recordings (or just Enable, if you already had the Twipla app from the App Market). Choose a plan, and it starts collecting. There's a free tier to kick the tires on. No snippet pasted into <head>, no ingestion service to babysit, no player to build. The whole thing is about six clicks in the dashboard.


Here's where it closes a loop. Last post, we installed a consent management platform and didn't write a cookie banner to do it. That wasn't busywork. A visitor who won't consent simply doesn't get recorded, which is how it should work. Consent sits upstream of the recorder, not bolted on after it. Twipla stays privacy-first the rest of the way down, too: it makes you choose a data privacy mode before it captures a single frame, from Light and Medium up to a dedicated GDPR mode and a Maximum mode that shows the least and protects the most. Flip on Obscure All Text and you can watch an entire checkout without ever seeing what anyone typed. Consent last post, recordings this one, and both configured from the same dashboard instead of a pile of script tags you keep in sync.

What we actually watched

So we rolled the tape. The viewer is where the guessing stops. Each session is a real video with a mouse trail so you can follow the cursor, and a color-coded playback bar that marks focus, scrolling, and navigation so you can jump straight to the moment that matters. A sidebar tells you who you're watching (visitor type, device, where they came from) while you watch. Speed past the dull parts, flip to list mode, jump to a specific action.


What we went looking for were the tells: rage clicks, dead clicks, u-turns, excessive scrolling, the frantic mouse jitter people do when a page stops responding. Filter and sort the list down to the sessions worth watching, and instead of reading a bounce number and inventing a reason, you open the three recordings where visitors clicked something that wasn't a button. The reason is right there on screen. (Reader: it is almost always something we swore was obviously a button.)

What "install, don't build" actually buys you

It's tempting to file this under convenience. It's more than that. The hard part of session replay was never the recording, since rrweb is open source. The hard part is everything around the recording that turns it into a liability: storage, retention, input masking, consent proof, the audit trail when a regulator asks what you captured and why. Building the recorder means owning all of that. Enabling it inside Wix Analytics means the privacy modes, the text obscuring, and the consent handling are the product, not your weekend. You make the UX decisions (what to record, a minimum session length, all pages or only specific ones, every session or only the ones with activity) and skip owning the compliance machine underneath it.

One recording, wired to everything

The replays don't sit in a silo. Because it's one platform, a recording is one click from wherever you're already standing:

  • Conversion Funnels: watch the actual dropouts at each stage, not just the percentage that fell out.

  • Visitor segments: filter to an ICP, then watch how that segment specifically moves through the site.

  • UTM campaigns: follow a paid click from the ad to whatever it did, or didn't do, next.

  • eCommerce & conversion events: jump straight to the sessions behind a purchase, an abandoned cart, or a booking.

Curate as you go: favorite the useful ones, annotate them, copy a link and share it with whoever needs to see it. The same filtering engine that runs the rest of Twipla runs here too.

The honest version of "data-driven"

Most of the time, "data-driven" means staring at an aggregate, inventing a plausible story for why it moved, and shipping against the story. Sometimes the story is even right. Session recordings replace the story with the footage. You don't theorize about why the booking page leaks. You watch six people leak out of it and see the exact pixel where they gave up.

We got there the same way we got the cookie banner: we didn't build the hard part. We installed it, pointed it at the pages we cared about, and spent our time watching users instead of laying pipe. A consent platform was a good argument for that model. So is a session recorder. So, still, is this entire site.