# Architecture How `epic-the-musical-timeline` is built today. Update in the same commit as any structural change. ## Overview A Bun server (`Bun.serve`) with HTML-import routes serves an index page and seven mockup pages. Bun's bundler turns each HTML page and its imported TS/CSS into hashed assets. `bun run build` bundles the server and every page into `dist/`; the Docker image runs that bundle. All pages read one typed sample dataset and mount one shared credits snippet. ## Map | Path | Responsibility | |---|---| | `src/server.ts` | `startServer(port, { contentDir? })`: routes `/`, `/mockups/NN-slug/` (+ 302 from the no-slash form), `/content/*` via `src/content/routes.ts`, 404 otherwise. Runs when `import.meta.main`; `PORT` env, default 3000. | | `src/mockups/index.html`, `index.ts`, `index.css` | Mockup gallery at `/mockups/`: static cards linking each mockup, then `mountCredits()`. | | `src/mockups/registry.ts` | `mockups: MockupInfo[]` — slug, number, name, pitch, what to try. | | `src/mockups/NN-slug/` | One design direction: `index.html` (links `../../shared/credits.css`, has `