A PWA for logging a physical record collection.
Its primary job is answering "what do I own?" — including while standing in a record store with one bar of signal. A wishlist and Discogs-sourced valuation orbit that core.
Scaffold in progress (T-01A). See docs/TICKETS.md for the build order, and docs/SETUP.md for every account and console step it depends on.
Zero cost, no card on file. Every architectural decision is downstream of this:
| Component | Tier | Watch out for |
|---|---|---|
| Firestore | Spark | 50k reads / 20k writes / day |
| Firebase Auth | Free | Phone auth bills — email + Google only |
| Cloudflare Workers | Free | 50 subrequests, 10ms CPU, 6 connections per invocation |
| GitHub Pages | Free | No custom domain |
| Discogs API | Free | 60 req/min per source IP, shared |
| File storage | none | Firebase Storage requires the paid Blaze plan |
Cloudflare Workers exist in this stack specifically because Firebase's free tier blocks outbound network calls, which the Discogs integration requires.
This constraint has already removed one entire feature area. Spotify integration was cut in August 2026 after Spotify began requiring a Premium subscription for Developer Mode API access — see docs/SPEC.md §9.
npm install
npm run dev # local dev server
npm test # vitest, single run
npm run build # type-check + production buildCopy .env.example to .env and fill in the Firebase web config (docs/SETUP.md §2.4). .env is gitignored.
docs/SPEC.md— architecture, data model, feature specificationsdocs/TICKETS.md— implementation tickets with dependencies and acceptance criteriadocs/CONTEXT.md— architectural decision records and their rationaledocs/SETUP.md— step-by-step account, console, and CLI setup
- Usable app, no external APIs (T-01A, T-01B, T-02 → T-05) — manual entry, collection browse, offline duplicate check. Genuinely useful standalone; ship before anything else.
- Discogs (T-06 → T-08, T-09, T-13, T-15) — search-based entry, wishlist, price display, attribution compliance.
- Recommendations — deferred to v2, redesigned to derive from the collection itself rather than a streaming service.
This application uses Discogs' API but is not affiliated with, sponsored or endorsed by Discogs. 'Discogs' is a trademark of Zink Media, LLC.
MIT