Legal
Privacy policy
What we collect, why, who helps us run it, how long it is kept, and what you can ask of us. Last updated 29 September 2026.
Who we are
Broken Here (brokenhere.com, “we”) is responsible for the data described here. Questions and requests about your data: hello@brokenhere.com.
Two kinds of people
- Customers: people with a Broken Here account, who put our widget on their websites. For their accounts, we decide what is collected and we are the controller.
- Reporters and visitors: people who use the widget on a customer's website. The customer decided to put it there and decides what happens to reports, so for reports the customer is the controller and we process them on its behalf. If you reported a bug on a website, write to that website first; we help it answer.
What a report contains
- The words the reporter typed, and, only if they give them, their name and email.
- The address of the page. The value of any parameter named like a secret (a token, a password, a session) is replaced in the browser before the report is sent.
- The browser, operating system, window size and language.
- JavaScript errors and console warnings and errors from the website's own code. Messages from other companies' scripts are counted, not kept.
- Recent and failed network requests: the address without its query string, the method, the status and how long it took.
- A screenshot of the page, with password fields and any area the customer chose blurred in the browser, before it is taken. And any images the reporter attaches.
- Only if the customer turns it on: the bodies of failed requests to the customer's own servers, with anything under a secret-looking name replaced in the browser.
Never collected by the widget: request or response headers, cookies, console.log output, or the contents of data:, blob: or file: addresses. The full list is in What gets captured.
The widget itself is loaded from brokenhere.com, through Cloudflare, on every page of a customer's website that carries it, so Cloudflare receives each visitor's IP address the way any website's host does, whether or not they report anything.
Where a report goes
It is stored with us, shown to the customer's team, and sent to the trackers and help desks the customer connects (for example Jira, Linear, GitHub, Notion, Zendesk or Intercom). The team gets an email about it if they asked for one. A reporter who gave an email gets a private link to follow their report, and emails about it.
Customer accounts
Name, email, password (stored hashed), workspaces and their members, notification choices, billing identifiers from Stripe (we never see card numbers), and the credentials of the services a customer connects, stored encrypted. For GitHub we keep only the installation's id; access tokens are made for each request and not kept.
The coding agent and AI assistants
If a customer hands a report to a coding agent, the report is sent to the customer's own Cursor account, which opens a pull request on the customer's repository. If a customer turns on automatic merging, the changed files of that pull request are sent to TypeSafe's reviewer. If a customer connects Claude, ChatGPT or Codex, we keep that connection and the change requests made through it.
The free page checker
When you check a page, a browser in our cloud opens the address you typed and records what went wrong. The report is kept 30 days (a full site check, 62 days). The address as you typed it is cleared when the check ends; we keep the report's cleaned address and a keyed hash of it, to limit repeat checks. A cookie holding a random id lets you see your own report. Cloudflare Turnstile checks the form is used by a person. A short summary is written by an AI model (Cloudflare Workers AI; OpenAI for a full site check) from the findings alone.
Cookies and browser storage
- On brokenhere.com: a session cookie when you are signed in, a cookie remembering which workspace you were looking at, and the page checker's cookie above. No advertising or tracking cookies. Cloudflare Web Analytics counts visits without cookies.
- On a customer's website, the widget sets no cookies. It keeps an unsent report in the visitor's own browser so it is not lost, and, for the customer's own team members, a sign-in token for 30 days.
Who helps us run it
- Cloudflare: hosting, screenshot storage, DNS, analytics, Turnstile and the page checker's summaries
- Neon: the database (Frankfurt, Germany)
- Google Cloud: the page checker's browser (Belgium)
- Resend: email
- Stripe: payments
- OpenAI: the recap of a full site check
- Vercel: standby hosting, until October 2026
- Cursor, TypeSafe, and the trackers, help desks and AI assistants a customer connects: only when that customer connects them
Some of them process data outside the European Union. Where they do, it is under the safeguards the GDPR provides for, such as the European Commission's standard contractual clauses.
How long we keep it
Reports and their screenshots stay until the customer deletes them, the project, or the workspace; deleting a project deletes its screenshots from storage. Page checks are deleted after 30 days, full site checks after 62. An account stays until you ask us to delete it. Deleted data can remain in our database provider's backups for a short time, until they are overwritten.
Your rights
You can ask to see, correct, delete or take a copy of your data, or object to how it is used, by writing to hello@brokenhere.com. We answer within a month. If you reported a bug on a customer's website, write to that website first: it decides about its reports. You can also complain to the data protection authority where you live or work.
Changes
We change this page when what we do changes, and say so to customers by email when it matters. The date at the top is the last change.