A funnel tells you where people leave. A replay of that exact person, keyed to the same event, tells you why.
Type a domain. We open that page in a real browser, record it, and play the recording back to you here. No account, nothing installed.
One page, one browser, one visit.
Half the carts never reach checkout. That figure is true, repeatable, and tells you nothing you can fix. The next question is always the same one: what were those people actually looking at?
Analytics for the drop, error tracking for the stack trace, a support ticket for the anecdote, a staging build to reproduce it. Four tools, four identities for the same person, and no way to line them up on one clock.
The recording, the errors and the network calls sit on one timeline, because they came out of one pipeline. There is nothing to reproduce: you are watching the original.
Drag anywhere on the timeline. Skip the idle minutes, sit on the two seconds that matter.
Uncaught errors and unhandled rejections on the same clock as the recording, deduplicated so one broken loop cannot flood a session. Click one, land on the frame.
Method, address, status and duration for every call the page made while you were watching. Addresses are redacted in the browser.
Text typed into fields is replaced in the browser, not on our side. There is nothing to redact later, because nothing was written down.
A recording carries the same person as your events, by the same identity graph. Signing in halfway through does not make a second stranger.
Expo and React Native apps record as frames and land in the same player, behind an opt-in. Masking happens on the device; a frame that cannot be masked is dropped.
Most stacks bolt a recorder onto analytics and hope the two agree on who a user is. Kilden records into the pipeline the events already run on — same identity, same clock, same verification. A drop-off in a funnel is a list of recordings, because it was never anything else.
An illustration. The identifiers are made up; the four readings are the four places that person already appears.
We couldn’t process that payment. Please try again.
Masking is on: the card number never left the browser. Click an exception to jump to it.
Masking off — this is what an unmasked recording would show. Turn it back on.
An illustration, not a recording of anyone: a hand-authored session, so an example on a marketing site cannot expire or leak.
The recorder is a separate script, fetched only for projects with recording on. The sampling roll happens inside it, after the fetch — so a sampled-out visitor pays for the script and records nothing.
What is above the line is what replay does today. If a capability is not listed, assume it does not exist yet — we would rather you found that out here than after installing.
# npm install kilden import kilden from 'kilden' kilden.init('wk_…')
Two lines, and no third one for replay.
Nothing to add. Recording is a switch in the project’s settings, so it never needs a change to your site — it lands on the next page load, not in a tab already open.
Masking happens in the browser, before anything is transmitted. The defaults below are on from the first recording; loosening them is an explicit change you make.
Two different clocks. The recording is deleted from storage after 30 days, on every plan. The events follow your plan — 180 days on free, 730 days on Pro — so the record outlives the video.
You are the controller and we process on your instructions, with a data processing agreement on request and a published subprocessor list. Chile’s Ley 21.719 sits on the same footing as the GDPR.
One recorded session counts once, however long it runs. On free the allowance is a cap, not a bill: recording stops until the month turns over. Full pricing →
The recorder is a separate script, fetched only for projects with recording on and never at all if you turn it off. It buffers and compresses off the critical path, and adds no blocking request to page load. If you measure a regression, tell us — we treat it as a bug, not a trade-off.
Compliance is a property of how you use it, not of a vendor badge. What we give you: text typed into fields masked in the browser by default, an attribute that excludes an element and its children, deletion on request, and a retention window that is fixed and published. Your consent flow and privacy notice remain yours — the same holds for Chile’s own data protection law.
Yes. Recordings carry the same person as events, so a profile lists that person’s sessions next to their event history. For signed-in users that identity is verified by a token your backend signs.
It is included in the free plan with a monthly allowance, and a larger one on Pro with a per-recording rate beyond it. On free the allowance is a hard cap rather than a bill. Seats are free on every plan.
Yes — the recorder watches the page, so it does not care what renders it. There is no framework-specific package to install and no router integration to configure.
Yes, on Expo and React Native: those record as frames and land in the same player, behind an opt-in. Native iOS and Android SDKs do not exist yet. Mobile web in a phone browser records like any other page.