Skip to content

Documentation

Introduction

What Wutbug is, how it works and what your team gets in every report.

Wutbug is a bug-report widget for web apps. You install it once in your app and anyone who uses it can report a problem from the browser they already have, with no extensions to install and no accounts to create. Your team receives a reproducible report: what the user said, what they did and what happened in the browser.

How it works

  1. You install the SDK with a <script> tag or the @wutbug/sdk npm package. From then on, the SDK keeps the last 2 minutes of the session in browser memory: the DOM replay, the console and the requests.
  2. The user reports. They click the floating button (or your own), describe what happened and, if they want, annotate the screenshot or record their screen. When the form opens, the SDK freezes what it has in memory, so whatever the user does while typing doesn't push the error out of the window.
  3. The report is sent. Only when the person clicks Send report does the SDK upload the data, already masked in the browser. Nothing leaves before that.
  4. Your team reviews it in the dashboard: replay synced with the console and network, user steps, device, annotated screenshot and an AI summary. From there you assign it, move it across the board, create the task in Linear, Jira, Notion or Asana, or hand it to your coding assistant over MCP.

What each report includes

DataDetail
DescriptionWhat the user typed and, optionally, their email.
ReplayDOM recording (rrweb) of the last 2 minutes. It isn't video: it's lightweight and sharp, and inputs are masked.
Consoleconsole.log/info/warn/error/debug, uncaught errors, rejected promises and resources that failed to load, with stack traces.
NetworkEvery fetch and XMLHttpRequest: method, URL, status, duration, headers and bodies (with secrets masked).
StepsClicks, fields the user typed in and navigation, reconstructed from the replay.
ScreenshotCapture of the visible screen that the user can annotate with arrows, rectangles and text, or remove.
Screen recordingOptional, up to 2 minutes, only if the user starts it and grants the browser permission.
Device and environmentBrowser, OS, device type, screen, language, time zone, network, battery (Chromium) and more. See Captured data.
User and metadataWhatever your app provides through setUser() and setMetadata().
ReleaseYour app's release, used to translate stack traces with source maps.

How lightweight it is

The initial script weighs about 7 KB compressed and only installs the capture hooks. The widget UI and the replay recorder download when the browser is idle; the screenshot capture and the annotation editor download when the user uses them.

PartWhen it loadsSize (gzip)
wutbug.js and capture hooksOn page load~7 KB
Widget UIWhen the browser is idle~14 KB
Replay recorder (rrweb)When the browser is idle~23 KB
Screenshot captureWhen the form opens~10 KB
Annotation editorWhen Annotate is clicked~2 KB

Next steps