A fix bundle, not a screenshot.
Crumbtrail embeds in your app and captures everything that happens in a session — front end to database — keyed to stable identity. Behavioral detectors watch that stream for the signals of a user giving up; when one fires, the reproduction window is flagged and handed to your agent.
Every layer of one session, one correlated timeline
A drop-in SDK records the whole stack of one user session — interactions, network, backend spans, and database writes — time-correlated to the exact second the user gave up.
Clicks & pointer
Every interaction, keyed to a stable component signature — not a brittle CSS path.
Network
fetch and XHR: method, URL, status, timing, and redacted payloads.
Console & errors
Logs, warnings, uncaught exceptions, and unhandled rejections with stacks.
Backend spans
OpenTelemetry spans correlated to the click that triggered them, across origins.
Database writes
Row-level diffs — the exact row a request changed, before and after.
Environment & flags
Feature flags, config, build, and runtime recorded with every session.
The give-up has a signature
Rage-clicks, retry storms, slow responses, abandoned flows — four detectors fire on the behavior of a frustrated user, not on exceptions. Cross-release comparison rides on the same identity model when you need to know what a release changed.
Detectors for the quiet give-up
Four behavioral detectors ship today: rage-click, retry storm, slow response, and abandoned flow. They fire on what a frustrated user does, not on exceptions — so the issues that never throw still surface.
The reproduction already exists
Every click, request, console line, and database write is captured into one correlated session — complete, not sampled. When a detector fires, Crumbtrail flags the window around it. The context exists before anyone files a ticket, and long before churn.
The exact row that changed
Row-level database diffs ride along with each request. When a user's action writes the wrong data — 200 OK, no exception — Crumbtrail shows the exact row that changed, before and after.
The autonomy dial
You decide what happens next. Level 1: alert — “47 users hit this, here’s the reproduction.” Level 2: hand the fix-context bundle to your coding agent. Level 3: your coding agent takes the bundle all the way to an open PR. One pipeline, escalating trust. Nothing fixes production until you turn the dial.
Your agent pulls the evidence itself
Crumbtrail exposes a rich MCP surface so your coding agent pulls the time-matched front-end and back-end evidence itself — and can traverse and act on the UI by component identity, instead of guessing from a screenshot.
getFixContext
The complete causal window for one failure — clicks, requests, spans, and the row that changed.
getRegressionContext
What diverged between two releases for the same interaction, step for step.
Redacted by design
Credentials and PII are masked before anything is stored — your capture policy, enforced. You decide what is captured, what is masked, and how long it is kept.
Find out what your users are quietly hitting.
Read the quickstart and embed Crumbtrail in an afternoon.