Skip to content

Where the build is

Generated by apps/docs/scripts/generate-status.mjs from docs/work/. A spec exists only because its item shipped, so this cannot rot by being forgotten.

Live now

Where
Apphttps://tabletop-tracker-app.pages.devsearch, game detail, sign in
Sitehttps://tabletop-web.tabletop-tracker.workers.devgame pages a crawler can read
APIhttps://tabletop-tracker-api.tabletop-tracker.workers.dev/healthpublic reads over the catalogue
Docshttps://tabletop-tracker-docs.pages.devthis site

Progress

Milestone
Forge — Catalogue seeder████████████████████ 6/6complete
Later — Not yet scheduled░░░░░░░░░░░░░░░░░░░░ 0/55 left
M0 — Foundation████████████████████ 9/9complete
M1 — Domain core████████████████████ 9/9complete
M2 — Catalogue and clients███████████████████░ 27/281 left
M3 — Product████████████████████ 15/15complete
M4 — Social and discovery░░░░░░░░░░░░░░░░░░░░ 0/33 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-081An invalid slug should 404, not 500—
WI-078Async routes, for initial load—
WI-060BGG sync workerWI-H01
WI-080Cache catalogue reads—
WI-075Claiming a playerneeds an ADR
WI-077Clerk webhook reconciliation—
WI-041Content-based discovery—
WI-040Follows and the feed—
WI-094Prose in the catalogue—
WI-095Reload the catalogue from a clean database—
WI-050Social sign-inWI-H02
WI-079Teach check-turbo-inputs the ROOT-join pattern—

Waiting on a person

Never done by an agent — see agent boundaries.

  • WI-H01 — Email BGG about commercial licensing
  • WI-H02 — Enrol in the Apple Developer Program
  • WI-H03 — Create a Google Play Developer account
  • WI-H04 — Provision accounts and secrets
  • WI-H05 — Approve LLM enrichment spend and volume
  • WI-H06 — Provision Clerk and Sentry