Broken Here

Working with reports

The inbox, the five statuses, comments, and what the reporter sees.

The inbox

Each project has one inbox, newest first. It shows open items by default, and All includes resolved ones.

Each line carries enough to triage without opening anything: the page, the browser, how long ago, and how many JavaScript errors or failed requests came with it.

The report

A report lays out everything the reporter did not type, in the order you would ask for it: the screenshot with the element outlined, the selector and its text, the full environment, the JavaScript errors, every failed request with status and timing, and the console.

The widget takes the capture automatically when the form opens. On top of it a reporter can attach up to three images of their own, 2 MB each, within a ceiling on the whole report that the form keeps to as images are added. One that does not fit beside the reporter's other images is refused there and then, while they can still swap it for something smaller, rather than when they press Send. When only the automatic capture is in the way, the reporter's image wins. The report goes without the capture, and the form says so. The same happens at Send on a page that has logged so much that the capture and the logs will not travel together. The report goes with the logs, and the widget tells the reporter it went without the capture.

If a report cannot be sent because your app is down, or their connection dropped between the button and the request, what they typed is kept and offered back the next time they open the form. That holds even if they close the tab in between.

Statuses

Reported: It arrived. Nobody has looked yet.
Confirmed: Someone reproduced it, or sent it to a tracker. Pushing to a tracker sets this on its own.
Fixing: Someone is working on it.
Ready for review: It is fixed and waiting to be checked.
Resolved: It is done, and the reporter gets an email.

The reporter sees the same five steps as a timeline on their status link, so "is anyone looking at this?" stops being an email.

Comments

There are two kinds, chosen with a checkbox:

  • Visible to the reporter: Appears on their status link and is emailed to them
  • Internal: Stays with your team

The reporter can reply from their link. Their replies come back into the same thread.

A round of feedback has a thread of its own as well as one per finding, for questions about the whole round, such as "which of these is worth doing first". The reporter's status link shows both threads in one feed, because they have one link and two feeds would be two places to check. A reply to the round reaches the team the same way.

Email

Email goes out automatically, and never more than needed:

WhenWho gets it
A report is filedThe reporter, with their status link
A reporter-visible comment is added, on a report or a roundThe reporter
Status becomes ResolvedThe reporter

A failed email never fails a report.

Trackers work the same way, except that a failed send is shown. If Send instantly could not reach Notion or Linear, the report says so and the inbox marks it not sent, with the reason: the token was refused, the destination is gone, or the tracker was unreachable. Nothing is lost either way; press Send once the cause is fixed and the warning clears.

Who can see what

Reports belong to the project, projects belong to a workspace, and every view re-checks that you are a member of it. Being sent a report's internal URL is not enough to open it.

The one public surface is the reporter's own /r/<token> link.

On this page