Decisions
Each decision has its own page: the decision, its status, and a link to the reference page that explains the mechanism it produced.
| ADR | Decision | Status |
|---|---|---|
| 001 | Use the internal JSON:API of Patreon, not the official OAuth API | Accepted |
| 002 | Send each request from the runner, never from the service worker | Accepted |
| 003 | The runner replies with data; the service worker writes the cache | Accepted |
| 004 | The service worker keeps no state between messages | Accepted |
| 005 | Do not open a hidden tab | Accepted |
| 006 | Dexie for data, Cache API for bytes, no referrer for media | Accepted |
| 007 | hls.js for HLS; an iframe and a CSP list for other players | Accepted |
| 008 | Do Safari after Chrome and Firefox are stable | Accepted |
| 009 | A harness browser with a profile that keeps the session | Accepted |
| 010 | One message for each page; no chunking. A message is 25 to 42 KB | Accepted (2026-08-30) |
| 011 | Gopher does not make money | Accepted (2026-08-30) |
| 012 | A side panel, not a popup; the tab uses the same panel code | Accepted (2026-08-30) |
| 013 | No offscreen document; use a patreon.com tab that is open | Accepted (2026-08-30) |
| 014 | CSS that we wrote, not Tailwind or shadcn/ui | Superseded by ADR-017 (2026-08-31) |
| 015 | Gopher limits its own requests, and a test proves the limits | Accepted (2026-08-30) |
| 016 | Catalogs that we wrote for the panel, _locales/ for the manifest | Accepted (2026-08-30) |
| 017 | Tailwind CSS 4 with shadcn/ui for the whole panel | Accepted (2026-08-31) |
| 018 | The Aqua registry gives the components, the palette, and the face | Accepted (2026-08-31) |
| 019 | The documentation is a public site in this repository, with memory.md for state | Accepted (2026-09-02) |