Synced replay
Click a console error and the replay jumps to that moment. Like devtools, but for your user’s browser.
Bug reports with session replay, console and network, from one click inside your app.
One-line install · 7 KB on load · sensitive data masked
One page per report: synced replay, console, network and the user’s own words.

How it works
A script tag or an npm package. From that moment Wutbug keeps the last 2 minutes of the session in memory.
<script type="module"
src="…/wutbug.js"
data-project-key="pk_…">
</script>They tap “Report a bug”, describe what happened and, if they want, mark up the screenshot or record their screen. Everything technical is attached automatically.
It lands in Slack or your inbox. Open the report, see exactly what happened and create the Linear or Jira ticket in one click.
New report in Store: WB-128 · The pay button just keeps loading
1 error · 1 failed request · Chrome
In every report
The last 2 minutes of the page, played back like video but built from the DOM: light and crisp.
Try it now
This is the real widget, running on this page. Three steps, thirty seconds, nothing leaves your browser.
This page has Wutbug installed. Break something and report it like a customer would:
Demo mode: the report never leaves your browser.
This is the report your team would get
When you submit the report, you’ll see what Wutbug captured here.
For your team
Click a console error and the replay jumps to that moment. Like devtools, but for your user’s browser.
If 30 people report the same error, you see one problem with 30 reports, not 30 cards.
Steps to reproduce and a likely cause, written by a low-cost AI model from the already-masked data. One click on any report, in any browser.
Upload your source maps from CI and errors show your file and line, not minified JS.
New, reviewed, in progress, resolved. Drag, assign and filter what’s yours.
When you resolve a report, Wutbug emails the person who filed it with your message. Your customers know you listened.
Private by default
Passwords, inputs, card numbers, tokens, cookies and authorization headers are masked on the user’s device. Add your own rules or tag elements with wutbug-mask to hide them from the replay.
{
"email": "ana@customer.com",
"password": "[REDACTED]",
"card": { "number": "[REDACTED]" }
}
authorization: [REDACTED]Integrations
A message in your channel for every new problem, with a link to the report. Duplicates don’t repeat it.
Create the issue in one click with steps, errors and failed requests. Closing it closes the report.
The same issue in your Jira project, with status syncing both ways.
Each report becomes a page in the database you choose.
Tasks in your project, closed in Asana means resolved in Wutbug.
Your team gets the report by email, and the person who filed it hears back when it’s fixed.
Pricing
Prices in USD per month. Invite your whole team at no extra cost.
To try it on one project
$0/ month
For product teams
$29/ month
For multiple products and teams
$99/ month
FAQ
No. The widget lives in your app: you add it with one line of code and anyone can report from the browser they already use.
It weighs about 7 KB on load. The replay and the interface arrive when the browser is idle, and nothing is uploaded until someone submits a report.
They’re masked in the browser before anything is sent: inputs, passwords, cards, tokens, cookies and authorization headers. You can add your own rules and hide whole elements.
Jam needs an extension, so it doesn’t work for your customers. Sentry catches automatic errors, but not the user’s voice or an easy-to-read replay. Wutbug combines both in a widget anyone can use.
On Neon (Postgres and object storage) in AWS us-east-2, encrypted at rest, with the retention you choose per project. Expired reports are deleted automatically. Details in Security and Subprocessors.
Yes. It’s standard JavaScript: it works with any framework or plain HTML, via npm or a script tag.