The idea
A browser extension that sits quietly in the toolbar and, on click (or on an uncaught error), bundles the last couple minutes of console output, failed network requests, and a lightweight DOM session replay into a single shareable link. Instead of "the button didn't work, here's a screenshot," support and engineering get an actual reproducible trace.
Why build this
Most bug reports from non-technical users are useless: a screenshot, a vague sentence, maybe a timestamp if you're lucky. Support teams spend more time reconstructing what happened than fixing anything, and engineers end up asking users to open dev tools and copy-paste console output, which never goes well. Session replay tools like LogRocket solve this for teams who instrument every session in production, but that's expensive and raises privacy questions when you're recording everyone by default. A click-to-capture model — record locally in a rolling buffer, only upload when someone hits the button — gets most of the value without the always-on surveillance cost or the licensing bill.
Stack sketch
- Chrome/Firefox extension, Manifest V3, background service worker holding a rolling ring buffer (last ~90 seconds)
console.error/console.warninterception via monkey-patched console methods injected at document-start- Network capture via the
webRequestAPI for failed/slow requests (status >= 400, timing over a threshold) - DOM session replay using rrweb, snapshotting only on click and capturing the pre-click buffer
- Backend: Cloudflare Workers + R2 for storing captured bundles, keyed by a random shareable slug
- Simple viewer app (static site, hosted on Workers or Vercel) that replays the rrweb session alongside a synced console/network timeline
- Optional: webhook out to Linear or Jira to auto-file a ticket with the bundle link attached
Scope for v1
- In: manual capture button, rolling buffer of console + network + rrweb events, upload to backend, shareable read-only viewer link
- In: basic redaction — strip
Authorizationheaders and common PII field names (email, password, token) from captured payloads before upload - Out: always-on recording, user-session analytics, heatmaps, or any automatic PII detection beyond a denylist of field names
- Out: native mobile browser support — desktop Chrome/Firefox only for v1
Where it could go
The natural next step is auto-capture on uncaught JS errors or unhandled promise rejections, so bugs get flagged before a user even notices something's wrong — with an opt-in prompt asking if they want to send the report. After that, integrations become the real product: one-click ticket creation in Linear/Jira/GitHub Issues with the bundle pre-attached, and a Slack app that posts new captures into an on-call channel. A hosted version for teams who don't want to run their own R2 bucket and viewer is the obvious monetization path once the self-hosted version proves the format is useful.
Watch out for
Redaction is the whole ballgame here — a single leaked auth token or session cookie in a captured network request turns a helpful debugging tool into a liability, so the denylist needs to be conservative and probably paired with an explicit "review before send" step rather than blind auto-upload.