# site The did.bot website: marketing pages, the prose documentation, and the Rust API reference, built into one static tree by [Astro](https://astro.build). ## What lives where - `src/pages/index.astro` — the landing page: a scroll-driven, deterministic 2-D Ising-model simulation that crystallises into the "did.bot" wordmark. This is the one page on the site where the full, live simulation runs — see "The landing page's simulation" below, and "How the Ising direction was chosen" for why this direction and not one of the five others tried. - `src/pages/features/`, `src/pages/architecture/`, `src/pages/about/` — the three sections that have subpages. Each is exactly two routes, `index.astro` and `[slug].astro`, both reading one data file; the pages underneath are whatever that file's list holds, so adding one is a data edit and never a routing edit. See "One file per page" below. - `src/pages/*.astro` (the rest) — get started, privacy, terms, 404. - `src/config/nav.ts` — the header and footer nav, as data. **This is the one place to add, remove or reorder a header or footer link** — `Header.astro`, `Footer.astro` and the landing page's own header/footer all render from `headerNav`/`footerNav` here, so a link list never needs editing in more than one place. - `src/config/anim.ts` — every landing-page animation parameter that is not part of the physics schedule itself (lattice size, camera/zoom pacing, the reveal band's position in scroll space, mesh/caption timing, the free-run threshold). **This is the file to open to tune the simulation without touching Rust or the `?tune=1` panel.** The schedule itself (temperature, field strength/ramp, sweep count) is *not* here — see the next section for why, and where it actually lives. - `src/pages/docs/` — renders the repository's `../docs/*.md` at `/docs/`. The markdown itself is not here: `scripts/prepare-docs.mjs` copies it from `../docs/` into the gitignored `src/content/docs/`, rewriting its relative links so they resolve on the built site (see that script's own comments for the rewriting rules). Never hand-edit anything under `src/content/docs/` — it is regenerated on every build and dev run and the edit will vanish. - `/api/` — not built by this project at all. `../scripts/build-site.sh` copies `cargo doc`'s own `target/doc/` output here after the Astro build. There is no Astro page for it; `site/tests/check-links.mjs` only checks that the mount point itself is reachable, not rustdoc's own internal links. - `src/data/*.ts` — the marketing copy, **one file per page or section**: `features.ts`, `architecture.ts`, `about.ts`, `get-started.ts`, `privacy.ts`, `terms.ts`, `not-found.ts`. Each is the only place its page's words live. `section.ts` holds the shape the three sectioned ones share and `filler.ts` the `PH()` marker for copy nobody has written yet — see "One file per page" below. `meta.ts` holds the two strings no page has of its own: the fallback description and what the social card depicts. - `src/data/landing-beats.ts` — the landing page's copy: its beats (hero, the long-dwell captions, the post-reveal footer line) as an ordered list. **This is the one place to add, remove, reorder or reword a landing-page beat**: the page renders the list, and the scroller's height and each beat's position down it are derived from the list's length. - `src/data/testimonials.ts` — **provisional real copy**: genuine, attributable quotations (three testimonials, one each for Opus, Fable and Haiku) sitting in slots expected to be refilled later. See "One file per page" below for how this differs from an invented placeholder and why that difference matters. - `crates/didbot-site-anim` (at the repo root, not under `site/`) — the landing page's simulation engine (the Ising lattice, the deterministic checkpoint-and-replay anneal, free-run), in Rust compiled to wasm by `../scripts/build-wasm.sh`. Ordinary `cargo test -p didbot-site-anim` covers the simulation itself, no browser needed. - `crates/didbot-brand` (also at the repo root) — the brand images, built by annealing that same engine and writing the result into `public/`. See "The brand images" below. ## The landing page's simulation `src/pages/index.astro` is not built like the other pages: it is a complete, self-contained HTML document with its own `