From fa936ab44c2c01b430c48df88b3a76ac6b33a5ff Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 27 Aug 2026 14:55:45 +0000 Subject: [PATCH 01/12] Add website overhaul implementation plan Complete phased plan for the Next.js -> Astro rewrite: toolchain (pnpm/mise/oxlint/oxfmt/ESLint/Prettier split), design system, shadcn-convention Astro primitives, content collections, page ports, event landing pattern, asset/performance budgets, SEO/AI-SEO, analytics, and cutover. plan/00-overview.md records all locked decisions from the planning interview. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01DU6XwSGRUDZtz5DuXjzKnn --- plan/00-overview.md | 135 ++++++++++++++++++++++++++++++++++ plan/01-foundation.md | 119 ++++++++++++++++++++++++++++++ plan/02-design-system.md | 60 +++++++++++++++ plan/03-primitives.md | 58 +++++++++++++++ plan/04-content-model.md | 95 ++++++++++++++++++++++++ plan/05-app-shell.md | 61 +++++++++++++++ plan/06-homepage.md | 52 +++++++++++++ plan/07-pages.md | 72 ++++++++++++++++++ plan/08-events.md | 40 ++++++++++ plan/09-assets-performance.md | 49 ++++++++++++ plan/10-seo.md | 60 +++++++++++++++ plan/11-cutover.md | 58 +++++++++++++++ plan/12-content-strategy.md | 41 +++++++++++ 13 files changed, 900 insertions(+) create mode 100644 plan/00-overview.md create mode 100644 plan/01-foundation.md create mode 100644 plan/02-design-system.md create mode 100644 plan/03-primitives.md create mode 100644 plan/04-content-model.md create mode 100644 plan/05-app-shell.md create mode 100644 plan/06-homepage.md create mode 100644 plan/07-pages.md create mode 100644 plan/08-events.md create mode 100644 plan/09-assets-performance.md create mode 100644 plan/10-seo.md create mode 100644 plan/11-cutover.md create mode 100644 plan/12-content-strategy.md diff --git a/plan/00-overview.md b/plan/00-overview.md new file mode 100644 index 0000000..6c40f2e --- /dev/null +++ b/plan/00-overview.md @@ -0,0 +1,135 @@ +# scstem.org Overhaul — Plan Overview + +This directory is the complete implementation plan for rewriting scstem.org from Next.js 16 to Astro. Each numbered file is a **self-contained agent brief**: an implementing agent should be able to execute a phase given only that file, this overview, and the repository. + +## How to use this plan + +- Execute phases **in order**. Each phase file lists its prerequisites; do not start a phase whose prerequisites are unmet. +- All implementation happens on the long-running branch **`astro-rewrite`** (created from `main` in Phase 01). Each phase is developed on a short-lived branch off `astro-rewrite` and merged into it via PR — one PR per phase, titled `overhaul: `. +- `staging` and `main` are untouched until Phase 11 (cutover). Cloudflare Pages gives `astro-rewrite` an automatic preview URL (`astro-rewrite..pages.dev`), which the existing `public/_headers` rules keep noindexed. +- The old site lives in **`legacy/`** during the rewrite (moved there in Phase 01). It is the *reference* for content, copy, URLs, and behavior. **Never import from `legacy/`; never copy components.** Copy *content and intent*, rebuild the implementation. +- Before every commit: `pnpm check && pnpm build` must pass. A phase is done when its acceptance criteria are all checked and CI is green. +- When a phase makes a decision not covered here, record it in `docs/adr/NNNN-.md` and note it in the phase PR description. + +## Objectives (from project owner) + +1. Keep the brand (colors, dark look, voice) while making the design *genuinely better* — SEO + accessibility improvements, consistent brand feel, no "AI slop" aesthetic. +2. Content (sponsors, events, FAQ, robots, etc.) becomes markdown/data files — adding a sponsor should take 2 minutes and one small PR. +3. Astro, fully static, minimal dependencies, **zero client-side framework runtime**. +4. SEO across the board, including AI/agent SEO (llms.txt, structured data, semantic HTML). +5. Components split into `ui/` (composed, site-level) and `ui/primitives/` (low-level, shadcn-convention). +6. pnpm + mise + cnfast; strict linting via oxlint/oxfmt (TS/JS/JSON/CSS) and ESLint/Prettier (Astro/MD), ready to collapse onto oxc when it supports Astro. +7. Code health, DX, DRY — kill the page forks and triplicate carousels. +8. 10/10 mobile experience, enforced by Lighthouse CI budgets. +9. A well-defined `DESIGN.md`; design review gate before mass page porting. +10. Agent configs: format/lint hooks on every agent edit, concise `AGENTS.md`. + +## Locked decisions (from planning interview) + +| # | Decision | +|---|----------| +| D1 | Clean rewrite; `legacy/` in-tree for reference only; staging site used for verification before go-live. | +| D2 | Content via Astro Content Collections (zod-validated markdown). No CMS now; schemas kept flat/simple so a git-backed CMS (e.g. Keystatic) can be added later without restructuring. | +| D3 | Zero framework runtime. `.astro` components + vanilla `