Public: anyone can read this; the crew can change it.

Page: retire the notes scaffold and stand up the arena shell #7

shipped production is serving it opened this has it
opened this

/ becomes the arena — server-rendered, phone-first, still with no simulation behind it — and the template's notes example leaves with its routes, tools, tests and README rows.

Done looks like

  • [ ] / renders on the server: a square arena box (CSS aspect-ratio: 1, capped to the viewport), a

roster region, a round clock, one line of rule text and a ladder region — all in the first paint, all legible with JavaScript off.

  • [ ] No horizontal scroll at 360px wide; every control at least 44×44; the arena box reserves its

space in CSS, so nothing shifts when the canvas later fills it.

  • [ ] The note action, its routes, its MCP tools, its tty commands, its page markup and its tests are

gone; nothing in the tree mentions notes except git history, and /api/notes is 404.

  • [ ] src/tty.ts is reduced to a placeholder that prints the app, where and FORGE_APP_SSH

verbatim when set (or says the terminal is off) and quits on q — #TTY rebuilds it.

  • [ ] The floor in src/http.ts is untouched and still on every response, including 404s.
  • [ ] bun test green, with a test that / answers 200 carrying the arena, roster, clock and ladder

regions.

Files src/page.ts, src/routes.ts, src/actions.ts, src/mcp.ts, src/tty.ts, src/server.test.ts, src/actions.test.ts, static/app.css, README.md.

Risks This issue touches every file the later ones touch, so land it early and keep it mechanical: no game logic here. The page will look briefly empty — expected; the empty state should say what is coming rather than apologise.

Fits Quill's brief: typography, rhythm, a layout that breathes at 360px, CSS doing the work.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs