Decision 3 (MDX content plus Sanity) is superseded by
0114: the page builder builds every page, our own site
included. Decisions 1, 2 and 4 stand.
Context
The landing site is public and must be indexable, so unlike the console (0052) it needs prerendering. React Router 7 framework mode provides that and keeps one router family across web surfaces. Marketing content changes more often than code.Decision
- The landing app uses React Router 7 framework mode with an explicit
routes.ts(code-based, no file routing, per 0053) and prerenders public pages. - It deploys to Cloudflare Workers (0063).
- Content is MDX in the repository plus Sanity for editor-managed content. The Sanity project and token names are TODO; token values live in the vault.
- The landing app is a new
tier:appmember (apps/landing), created withpnpm new.
Consequences
- Fast, indexable pages; editors can change Sanity-backed content without a deploy.
- Sanity is a new external service and cost.
- Framework mode is the one place a server runtime (Workers) appears among web apps.
Enforcement
Planned — thepnpm new scaffold and a CI build with prerender; the no-file-routing check from 0053 covers routes.ts.