Where the build is
Generated by
apps/docs/scripts/generate-status.mjsfromdocs/work/. A spec exists only because its item shipped, so this cannot rot by being forgotten.
Live now
| Where | ||
|---|---|---|
| App | https://tabletop-tracker-app.pages.dev | search, game detail, sign in |
| Site | https://tabletop-web.tabletop-tracker.workers.dev | game pages a crawler can read |
| API | https://tabletop-tracker-api.tabletop-tracker.workers.dev/health | public reads over the catalogue |
| Docs | https://tabletop-tracker-docs.pages.dev | this site |
Progress
| Milestone | ||
|---|---|---|
| Forge — Catalogue seeder | ████████████████████ 6/6 | complete |
| Later — Not yet scheduled | ░░░░░░░░░░░░░░░░░░░░ 0/5 | 5 left |
| M0 — Foundation | ████████████████████ 9/9 | complete |
| M1 — Domain core | ████████████████████ 9/9 | complete |
| M2 — Catalogue and clients | ███████████████████░ 27/28 | 1 left |
| M3 — Product | ████████████████████ 15/15 | complete |
| M4 — Social and discovery | ░░░░░░░░░░░░░░░░░░░░ 0/3 | 3 left |
66 work items shipped. 9 planned, 6 waiting on a person.
Shipped
Forge — Catalogue seeder
- WI-047 — A licence per picture
- WI-070 — The forge, and a client that cannot be impolite
- WI-071 — Wikidata
- WI-072 — The obligation, before the content
- WI-073 — A ceiling that cannot be talked round
- WI-074 — Telling one game from another
M0 — Foundation
- WI-001 — Set up WSL2 and relocate the repository
- WI-002 — Scaffold the monorepo
- WI-003 — Build the CI gate and GitHub scaffolding
- WI-004 — Build the docs subsite
- WI-005 — Author the ADR catalogue and standards
- WI-006 — Build packages/db
- WI-007 — Deploy the docs subsite to Cloudflare Pages
- WI-026 — Show where the build is
- WI-069 — A backlog that can hold planned work
M1 — Domain core
- WI-010 — Domain schema
- WI-011 — Derive shared Zod schemas from the Drizzle schema
- WI-012 — The API
- WI-013 — Clerk sessions and the lazy local user
- WI-014 — Move reviews onto the session, add session tags
- WI-015 — Teaching cost
- WI-016 — Generate the client contract
- WI-018 — Test the API in the Workers runtime
- WI-022 — Deploy the API, and prove the secrets are real
M2 — Catalogue and clients
- WI-017 — Mobile search against the API
- WI-020 — The CatalogueSource seam and its fixture
- WI-021 — Game search
- WI-023 — Expo scaffold
- WI-024 — Sign in on mobile
- WI-025 — Put the app on a URL
- WI-033 — Give Clerk somewhere to put its CAPTCHA
- WI-034 — Continue with Google, on web
- WI-061 — Pages a crawler can read
- WI-062 — Put the site on a URL
- WI-063 — A deploy that proves a game can be read
- WI-064 — The web Worker cannot reach the API
- WI-065 — A deploy that waits, and a site that is listed
- WI-066 — A web view that matches the app, and a way in
- WI-067 — A smoke test that checks meaning, not markup
- WI-076 — Load the forge corpus into the database
- WI-082 — Every page view shared one rate-limit key
- WI-083 — What counts as a board game
- WI-084 — The catalogue corpus followed a dependency into the Worker
- WI-085 — Shake Pass Play, applied
- WI-086 — The square mark in the header, the lockup on the home page
- WI-087 — A home page that is a front door
- WI-088 — One header across the site and the app
- WI-090 — A catalogue you can page through
- WI-091 — A site a crawler can reach
- WI-092 — The web gets a scale of its own
- WI-093 — The game page, at the width it is read on
M3 — Product
- WI-030 — Collections
- WI-031 — The shelf, on screen
- WI-032 — Log a play
- WI-035 — Who was at the table
- WI-036 — Log a play, on screen
- WI-037 — A name of your own, a date, and a play you can correct
- WI-038 — Test what the screen actually does
- WI-039 — Your plays, and a way to correct them
- WI-042 — Measure the bundle before arguing with it
- WI-043 — Who was at the table
- WI-044 — A way back
- WI-045 — One set of controls
- WI-046 — A point of view
- WI-048 — Covers on screen
- WI-049 — An icon, and a layout for the screen it is on
Not started
| Blocked by | ||
|---|---|---|
| WI-081 | An invalid slug should 404, not 500 | — |
| WI-078 | Async routes, for initial load | — |
| WI-060 | BGG sync worker | WI-H01 |
| WI-080 | Cache catalogue reads | — |
| WI-075 | Claiming a player | needs an ADR |
| WI-077 | Clerk webhook reconciliation | — |
| WI-041 | Content-based discovery | — |
| WI-040 | Follows and the feed | — |
| WI-094 | Prose in the catalogue | — |
| WI-095 | Reload the catalogue from a clean database | — |
| WI-050 | Social sign-in | WI-H02 |
| WI-079 | Teach check-turbo-inputs the ROOT-join pattern | — |
Waiting on a person
Never done by an agent — see agent boundaries.