Embeddable bug reporting

Reports arrive with the evidence.

Drop a widget on your site. Reporters send the screenshot, the markup, the session replay, and the logs. Your team triages every report in one dashboard.

  • Screenshot
  • Annotation
  • Replay
  • Console
  • Network & env

The ticket shows what the reporter saw.

The widget and the dashboard are one product. Capture happens on the site. Triage happens here.

Marked up on the page

Reporters open the widget, capture the screen, and draw on the broken UI. The screenshot and annotation stay attached to the bug.

Replay and diagnostics

Each report keeps the session replay, recent console lines, network activity, the page URL, and the environment it was captured in.

A queue the team can work

Filter by status and priority, assign a teammate, and comment in public or internal threads. Mention someone with @.

How a report gets here

  1. 01

    Install the widget

    Add one script tag, or import the SDK. The workspace API key ties reports to your dashboard.

  2. 02

    Someone files it in place

    A visitor or teammate annotates the page and submits. Guest and member forms follow the fields you mark visible or required.

  3. 03

    Triage it with the evidence

    The bug lands in the dashboard with its screenshot, replay, and diagnostics already on the ticket.

One snippet on the site.

Point widget.js at this app and pass your workspace API key. The same package is available as @bug-tracker/widget if you would rather call open() from your own UI.

<script
  src="https://www.bugtrap.app/widget.js"
  data-api-key="YOUR_WORKSPACE_API_KEY"
  data-endpoint="https://www.bugtrap.app/api/reports"
></script>