# Bug reporting: Bugpin (user) + Bugsink (auto) **Status:** Approved design, ready for implementation plan. **Date:** 2026-05-17 ## Goal Let visitors report bugs in the Halfstreet site with a screenshot, and capture uncaught JavaScript errors automatically. Reports should flow to systems already running on the `half.st` host so there is no new infrastructure to manage. ## Two distinct flows | | Bugpin | Bugsink | |---|---|---| | Trigger | Visitor clicks "Report a Bug" in footer | Uncaught JS error | | Capture | Screenshot, annotations, free-text note, console/network metadata | Stack trace, breadcrumbs | | Destination | Bugpin portal → auto-creates a GitHub Issue in the halfstreet repo | Bugsink portal only | | Library | `bugpin.half.st/widget.js` (lazy-loaded on click) | `@sentry/browser` npm package (loads on every page) | The two are intentionally separate. Bugpin owns user-facing reports; Bugsink owns automatic exception capture. Sentry's user-feedback widget is **not** used — that would overlap Bugpin and muddle the responsibilities. ## Components ### 1. Footer link `src/pages/index.astro` Add "Report a Bug" to the footer chain after the existing links. Render as a `