Privacy-First Bug Reporting Extension

Capture bugs with full context. You decide where the report goes.

BugBundler captures screenshots, console logs, network activity, and browser context into one portable HTML report. File it straight into your own Jira, or hand it over as a file — either way, we never store it.

Works across modern browsers

Chrome Microsoft Edge Brave Opera Opera GX Vivaldi Arc Chromium
30-day free trial No credit card required
Local-first No report hosting
One-click capture Fast and reproducible bugs
Portable HTML output Works offline anywhere
EU-hosted, GDPR-ready Account data stays in Finland & Sweden

The handoff problem

The same ticket, before and after

Developers spend hours reproducing bugs that were fully visible on the tester’s screen. BugBundler keeps that context instead of discarding it. Both examples below describe the same failure.

BUG-2841 Dashboard broken Can’t reproduce

“Hi, the analytics chart doesn’t load sometimes. I think it was on Chrome? Please fix asap.”

  • No screenshot, no steps to reproduce
  • No console output
  • No failing request or status code
  • Unknown browser, OS, viewport and build
  • No record of what was clicked before it broke

Back to the reporter for more detail, and the bug stays open.

bugbundler-Analytics_chart_fails_to_load.html Reproducible
  • Annotated screenshot the chart area at the moment it failed
  • Console log errors and warnings with full stack traces
  • Network the failing request, its status code and headers
  • Steps to reproduce the click path that led to the failure
  • Environment browser, OS, viewport and extension version

One file, opens in any browser, no account needed.

Before you share

Annotate it. Encrypt it. Then send it.

The report is a file on your own machine until you decide otherwise. Mark up what the developer needs to look at, and lock the file itself when the ticket is going somewhere sensitive.

BugBundler screenshot editor: a red box drawn around a failed chart, two arrows, and the notes "Chart request failed" and "Not working!"

Point at the problem

Draw straight on the captured screenshot, so the developer sees the failure the way the tester saw it — no second screenshot, no paragraph describing where to look.

BugBundler Encrypt export dialog with password and confirm password fields, a Generate strong password button, and Cancel and Export actions

Lock the file, not just the link

Password-protect the export before it goes into a ticket or an inbox. Opening the file asks for the password and decrypts it in the browser, with no service in the middle.

Integrations

The report goes where you send it

One capture, and the destination is your call. File it into your own Jira as a real issue, or keep it as a file and drop it wherever the ticket already lives. Neither route leaves a copy with us.

Jira · new in 1.4

Send it straight to Jira

An owner or admin connects the Jira site once from the Admin Panel. After that, every member of the company can file a captured report as an issue — with no Atlassian account of their own, no Marketplace app to install, and no per-person OAuth screen.

  • The annotated screenshot and the complete HTML report are attached to the issue, so console logs, network activity and the DOM snapshot travel with the ticket instead of staying on the reporter's machine
  • One destination per Jira project, routed automatically from the URL the report was captured on — a tester working across several sites files into the right project without picking one
  • Issues are attributed to the person who filed them, including Jira's own Reporter field where their account can be matched
  • A destination can be restricted to named users, so a project only receives reports from the people who should be filing into it
  • Jira Cloud, Jira Data Center and Jira Service Management

Sending is opt-in and per report. That one request passes through our EU infrastructure in Finland purely to reach your own Jira site — it is never written to our database, our file storage or our logs, and nothing is kept once the request finishes. See privacy and the DPA.

How the Jira integration works →

Everywhere else

Or keep it as a file

The export is an ordinary HTML file that opens in any browser, so the destination does not have to support anything in particular. This path takes no integration, no webhook and no OAuth screen: the file goes from your machine to wherever you put it, and never through us.

  • The same file works in Slack, Microsoft Teams, GitHub, GitLab, Azure DevOps or plain email
  • Anything that accepts a file attachment is a destination — Trello, Linear, Asana, Notion, a wiki page, a shared drive
  • Nothing to install on the tracker side — no marketplace app, no admin approval
  • Whoever opens the report needs no BugBundler account and no seat
  • Encrypt the export with a password when the ticket is going somewhere sensitive
  • Works with no network connection at all, including segmented and air-gapped environments

The GitHub workflow →

Why teams choose BugBundler

No servers. No self-hosting. No compromise.

Built for teams handling sensitive internal projects. Data stays on your machine and is shared only where your workflow allows.

All capture and processing happens locally in the browser

Fits private and restricted enterprise environments

Console logs and network requests are captured by the extension itself — nothing to add to the site you are testing, and it works on staging, on production, and on sites you do not own

Full bug reporting workflow works even with limited internet

Account data processed exclusively in the EU — Finland and Sweden — for teams with GDPR or Nordic data-residency requirements

BugBundler vs cloud-first tools

No backend dependency, no report hosting, no infrastructure setup.

Report storage Your device or your tracker
Setup Install and go
Code on the site under test None
Offline support Yes
Output Portable HTML report
Data residency EU (Finland & Sweden)

Maintenance & support

Actively developed. Directly supported.

Every bug reporting tool I evaluated worked the same way: the screenshot, the console log and the whole session uploaded to the vendor’s cloud. For teams under GDPR — or anyone whose screens show real customer data — that is where the evaluation stops. A DPA to negotiate, a sub-processor review to pass, and often a flat no from legal.

So I built it from the other end: keep everything that makes a report worth reading, and take the report host out entirely. Capture, processing and export all happen in the browser, and what you get is a file you own outright — if BugBundler disappeared tomorrow, every report you have exported still opens. The Jira integration follows the same rule: the report is handed to your Jira site and discarded, never stored on our side. Every change since is in the changelog.

When something breaks, it goes straight to whoever can fix it. No support tiers to escalate through, no ticket bouncing between departments before anyone reads it.

Account data hosted in the EU No support tiers Reports keep working without us

Pricing

One plan. All features included.

No feature gating or tier unlocks. Pricing is per active seat with automatic volume discounts, billed monthly or yearly.

Minimum 5 seats No feature gating Annual billing: 15% off Predictable seat-based billing

5-14 seats

$29/ seat / month

Great for smaller QA and product teams.

40+ seats

$27/ seat / month

Best rate for larger organizations.

Start 30-day free trial See full pricing

No credit card required. Cancel before day 30 and you are not billed.

Get Started

Ship complete bug reports in minutes

Replace vague tickets with one reproducible report that includes screenshot, logs, network context, and environment details.

No servers Portable HTML output Works with your current workflow