bogR
  • Live demo
  • Features
  • How it works
  • FAQ
Admin

Bug reports that arrive with the screenshot

bogR is a report widget for React apps and a hub that collects what it sends. Your users press one button, mark up a screenshot of the page and send it. Your team triages it in one inbox.

Open the admin
  • Or press Alt+Shift+B anywhere on this page.

Try it on a pretend dashboard

Below is a stand-in bug-report app with the widget mounted. Find something wrong, report it, and it lands in this hub's Demo project.

app.example.com/dashboard

Live demo: find a bug on this pretend app and report it.

  • New reports+12%+12%
    470012345678900123456789

    Last 7 days

  • Open
    140012345678900123456789

    Not triaged yet

  • Median time to triage
    42 min0012345678900123456789 min

    Last 30 days

  • Fixed this week+3+3
    900123456789

    Closed as fixed

Reports per day

New reports, Last 14 days
Daily average66Last 14 days
036912Avg 0
56789101112131415161718
New reports, Last 14 days
DayNew reports
Mon, Oct 54
Tue, Oct 66
Wed, Oct 73
Thu, Oct 87
Fri, Oct 99
Sat, Oct 105
Sun, Oct 112
Mon, Oct 125
Tue, Oct 138
Wed, Oct 146
Thu, Oct 1511
Fri, Oct 167
Sat, Oct 174
Sun, Oct 186

On triage duty

HBHorváth BenceKRKiss RékaMDMolnár DávidFLFarkas Lili

This week's new reports are assigned to them.

Screenshot storage7.9 GB free

12.1 GB of 20 GB used00123456789.00123456789GB of 20 GB used

Everything a useful report needs

The reporter spends ten seconds, and you get the page, the browser and a picture of the problem.

  • The page, already captured

    The widget renders the page from its DOM, or takes the tab through the browser's own capture, and attaches the image before the reporter types a word.

  • Marked up, not described

    Boxes, arrows and a pen point at the problem. A black box hides what should not be seen, burned into the image before it leaves.

  • Private by default

    Fields marked data-bogr-mask are blanked and elements marked data-bogr-ignore are left out. The reporter sees what is sent and can keep their details back.

  • One inbox per project

    Status tabs, filters, search and assignees, with a timeline of every change and comment on each report.

  • A webhook on arrival

    Each new report is posted to the URL its project names, and the answer shows on the report's timeline.

  • Kept as long as you say

    Each project sets how long its reports are kept. A daily purge empties older ones to a tombstone.

From a bug to the inbox in three steps

The widget never talks to the hub itself: your server adds the key and the signed-in reporter.

  1. 1

    Mount the widget

    Wrap your React app in BogrProvider and put BogrButton in it.

  2. 2

    Route it through your server

    createBogrHandler sends each report on with the project's server key and the reporter your session knows.

  3. 3

    Triage it in the hub

    Reports land in the project's inbox with the screenshot, the page and the browser they came from.

providers.tsxproviders.tsxproviders.tsxtsx
import { BogrButton, BogrProvider } from "@bogr/widget";

export function Providers({ children }) {
  return (
    <BogrProvider endpoint="/api/bogr">
      {children}
      <BogrButton />
    </BogrProvider>
  );
}

Common questions

What happens to a report, and to the data in it.

  • No. It posts to a route on your own server, which adds the signed-in reporter and the project's server key, then sends the report on. The key never reaches the browser.

bogR
  • Live demo
  • Features
  • How it works
  • FAQ
  • Admin
© 2026 bogR. Bug reports with the screenshot attached.