They click what's broken. You get what they forgot to send.
Your client writes one sentence. The ticket arrives in GitHub or Notion with the element, the browser, the console error, the failed request and a screenshot. They never had to know any of that existed.
One script tag, 8 kB gzipped — light enough that your client's site never feels it. This page is running it right now: find something broken and file it.
- Element
main > form#pay > button.primary- Page
- /checkout — Chrome 141 on macOS, 1512×845
- Errors
- TypeError: cart.total is not a function
- Network
- 500 POST /api/orders · 2.4 s
The part nobody types is the part you need
Which browser? Which page? What was in the console? Answered before the reporter finished their sentence.
They point at what is broken
One click, one sentence, done. No account to create, no form to learn, no screenshot to remember to attach.
The widget was already listening
Console warnings, JS errors and failed requests are recorded from page load — so the evidence exists before anyone thinks to look for it.
You get a ticket, not a message
The report lands in GitHub Issues or Notion with the selector, the browser, the screenshot and the network trail already in the body.
Stop asking “which browser? which page?”
Add a project, paste the tag, and the next bug report arrives finished.