Rewind — capture the bug you already missed

Stop writing bug reports.
Start capturing them.

One click records the screen, the console, the network calls and the exact environment — then AI writes the summary, the likely root cause and the steps to reproduce. The ticket lands in Jira before you've finished describing it.

Free forever plan · No credit card · Works on any site, including localhost

app.bugcatch.dev/bugs/BC-4127 Live triage queue

Checkout crashes on Apply coupon

BC-4127 reported by maya@acme.io · assigned to @dev-raj

Critical
Rewind · 1:47 before the crash

AI analysis

Root cause — POST /api/cart/coupon returned 500 after the discount pushed the total below zero. The client reads res.data.total.toFixed() without a null guard, so the cart component throws and unmounts the checkout tree.

  • 1 Add any item under $10 to the cart
  • 2 Enter coupon WELCOME50
  • 3 Click Apply coupon — page goes blank
Console 3 Network 27 Environment Steps 11
✕ TypeError: Cannot read properties of null (reading 'toFixed')  at CartTotal (Cart.tsx:118:24)⚠ POST /api/cart/coupon → 500  (412 ms)  { code: "NEGATIVE_TOTAL", cartId: "c_9f3a1" }
Pushed to Jira as ACME-2841 · posted in #eng-triage
1 clickFrom "it's broken" to a filed, reproducible ticket
2 minOf screen activity always buffered by Rewind
~4 kBSDK on your own site — no extension needed
73%Fewer "cannot reproduce" round trips reported by teams
The real cost of a bad bug report

"Works on my machine" is a three-day conversation

A screenshot in Slack starts a negotiation, not a fix. The developer asks which browser. QA asks which build. Somebody asks for the console. By the time the context exists, the tab is closed and the state is gone.

Without BugCatch

  • A cropped screenshot pasted into a thread
  • "What browser? What were you doing?"
  • Console and network state already lost
  • Repro steps written from memory, three hours later
  • Ticket bounces back as cannot reproduce
  • Two engineers, half a sprint, one guess

With BugCatch

  • Video of the failure, plus the two minutes before it
  • Browser, OS, viewport, build and user captured automatically
  • Every console error and failed request attached
  • AI-written summary, root cause and numbered repro
  • Filed in Jira, GitHub or Linear the moment it's reported
  • One engineer opens it once and fixes it
Capture

Everything a developer will ask for, collected before they ask

The reporter clicks once. BugCatch does the interrogation.

Rewind — the bug you already missed

BugCatch keeps a rolling buffer of the last two minutes of screen activity in an isolated offscreen document, capped to bound memory. Something breaks, you hit Rewind, and the recording of what led up to it is already there. No "can you do it again?"

Screenshot & annotation

Grab the full page or a region, then arrow, box, blur and caption it in place. Sensitive fields blur before the capture ever leaves the browser.

Screen recording

Record a tab, a window or the whole desktop with mic and narration. WebM is transcoded to MP4 on the queue so it plays anywhere your team pastes it.

Console & network logs

Errors, warnings, stack traces, failed requests with status codes, timings and payloads — attached to the report automatically, not pasted in by hand.

Environment metadata

Browser and version, OS, viewport and device pixel ratio, URL, release build, locale, timezone and the signed-in user — every field a triage engineer checks first.

Drop-in SDK — no extension required

A ~4 kB browser SDK puts a Report a bug button inside your own product, so customers and non-technical staff file the same complete report — screenshot, console, network and environment — without installing anything. Two lines to initialise, and the widget inherits your theme.

import { BugCatch } from '@bugcatch/sdk'

BugCatch.init({
  projectId: 'prj_8f21c',
  capture: { console: true, network: true },
  redact: ['[data-private]', 'input[type=password]'],
})
Triage

AI reads the bug so your team doesn't read every bug

Every report is analysed the moment it lands. BugCatch writes a one-line summary, proposes a root cause from the stack trace and failed requests, drafts numbered reproduction steps, and suggests a severity — then sorts the queue by it.

  • Plain-language summary a PM can read
  • Root cause traced to the failing call and line
  • Numbered repro steps drafted from the session
  • Suggested severity, editable by any triager
  • Duplicates grouped against open bugs on the same project
See the triage queue
Severity spine14 open
Critical3
High4
Medium5
Low2
Statusthis week
Open 9 In progress 3 Resolved 21 Closed 6
How it works

Four steps, and you only do the first one

  1. 01

    Capture

    Hit the extension or the in-app button. Screenshot, recording or Rewind — plus console, network and environment, collected in the same moment.

  2. 02

    Upload

    Media goes straight to object storage over a presigned URL, so a 60 MB recording never queues behind the API. The report is created the instant the upload lands.

  3. 03

    Enrich

    Background workers run AI analysis, redact secrets, transcode the video and push the issue to your tracker. Seconds, not a build step.

  4. 04

    Triage

    It appears in the queue ranked by severity, with the video, the logs and the repro on one screen. Assign, comment, resolve, or share a read-only link.

Integrations

Files the ticket where your team already works

One internal bug shape maps to every tracker through small per-provider adapters — so the same capture becomes a Jira issue, a GitHub issue and a Slack message with the fields each one expects.

JJiraIssue with severity, environment and attachments mapped to your fields
GHGitHubIssue in the right repo with labels, assignee and the video linked
LLinearIssue in the right team and project, with priority from severity
#SlackRich message in the triage channel, threaded on status changes
</>WebhooksSigned JSON on every event, for anything not on this list
APIREST APICreate, query and update bugs directly — the dashboard uses nothing else
Security & privacy

Bug reports are production data. We treat them that way.

A recording of a checkout flow contains a real cart, a real session and sometimes a real card field. Encryption and redaction are the default, not an enterprise upsell.

Encrypted at rest

On Team and Enterprise, every content column is sealed with AES-256-GCM under a per-workspace data key, itself wrapped by a master key. Ciphertext is self-describing, so a plan change or a half-finished backfill stays readable.

Redaction before storage

Configurable rules strip tokens, cookies, auth headers, card numbers and anything matching your own patterns out of logs and payloads before the record is written.

Workspace-scoped access

Every tenant resource is checked against membership. Projects are public to the workspace or restricted to an explicit member list, enforced inside the guard so no endpoint can ship without the check.

Deliberate sharing

A session is private by default and inherits its project's setting. Share one publicly and the API serves a purpose-built payload at a token URL — never the internal record.

Roles that mean something

Owner, admin, member and viewer, applied per workspace with an audit trail on every triage action. SSO/SAML and SCIM provisioning on Enterprise.

Your retention, your region

Retention is enforced per plan, from 7 days on Free to 365 on Enterprise — with custom windows, data residency, and self-hosted or private-cloud deployment available.

Pricing

Per member, per month. Bug reports are always unlimited.

Every limit on this page is enforced by the API, not just printed here.

Billing period

Free

For solo devs and trying things out.

$0/member/mo

Start free
  • 1 project
  • Up to 2 members
  • Unlimited bug reports
  • Screenshot + annotation capture
  • Console, network & environment capture
  • 7-day retention
  • Community support
Most popular

Team

For product teams shipping every week.

$19/member/mo

Start 14-day trial
  • Up to 25 projects
  • Up to 20 members
  • Screen recording + Rewind buffer
  • AI analysis — summary, root cause, repro
  • Jira, GitHub, Linear & Slack
  • Everything encrypted at rest (AES-256-GCM)
  • Private projects & sharing controls
  • 90-day retention
  • Priority email support

Enterprise

For orgs with compliance and scale needs.

Custom

Talk to sales
  • Unlimited projects & members
  • Everything in Team
  • SSO / SAML + SCIM provisioning
  • Audit log & role-based access
  • Self-hosted or private cloud
  • Custom retention & data residency
  • Dedicated support engineer + SLA

Yearly prices are what you pay per member each month when billed annually.

FAQ

Questions worth asking first

Do reporters need to install anything?

Your team installs the Chrome extension, which works on any site including localhost and staging behind auth. For customers and non-technical staff, drop the ~4 kB SDK into your app and they file the same complete report from a button in your own UI — nothing to install.

How does Rewind capture something that already happened?

Once you enable it, BugCatch continuously records into a rolling in-memory buffer holding the last ~2 minutes, discarding everything older. Nothing is uploaded until you press Rewind. If you never press it, nothing ever leaves the machine.

What stops a recording from capturing a password or a card number?

Two layers. In the browser you can mark elements to blur, and password fields are masked by default. Server-side, redaction rules strip tokens, cookies, auth headers and card patterns from logs and payloads before the record is written — and redaction runs before encryption, so the sealed row never contains the secret.

Can I keep using Jira as the source of truth?

Yes. Plenty of teams treat BugCatch as the capture and evidence layer only: the issue is created in Jira, GitHub or Linear on ingest, and the BugCatch link carries the video, logs and environment. Status changes sync back so the queue doesn't drift.

Which AI model writes the analysis, and does it train on my data?

Analysis runs on Claude through the API, on a no-training basis. It sees the redacted report — stack traces, failed requests and environment. If you'd rather it saw nothing, AI analysis can be turned off per project and everything else works unchanged.

What happens if I downgrade?

You keep everything you already have. Limits apply when you create something new, so a workspace over its new plan's cap is simply blocked from adding more rather than losing data. Encryption converts in place and is re-runnable in either direction.

Can we self-host?

On Enterprise, yes — in your own cloud or a dedicated private instance, with your object storage and your key management. The stack is Postgres, Redis and a Node API, deployable with Docker Compose or your own orchestration.

The next bug someone finds should file itself

Install the extension, capture one bug, and see what a complete report looks like. Free forever for solo work — no card, no sales call.

Works in Chrome and Edge · Firefox and Safari support in beta