# Proposal: Web Stack Decision Status: archived Archived: 2025-11-17 Applied: Merged to main via claude/web-stack-decision-2025-11-17 Authors: Platform Team Owners: Architecture Lead, Web Lead Created: 2025-11-17 Scope: spec Related: openspec/specs/architecture.md Summary - Decide between Next.js (React/SSR) vs Flutter Web to deliver accessible, SEO‑friendly, performant web with parity to mobile. Motivation - Ensure the web stack supports public SEO content (resources/blog), members‑only features, and strong a11y/compliance. Goals / Non‑Goals - Goals: select stack, document SSR/SEO approach, a11y/testing strategy, and performance budgets. - Non‑Goals: design system details (future proposal). Evaluation Criteria - Accessibility: semantic HTML, keyboard/focus, screen readers, reduced motion, large text. - SEO & SSR: canonical URLs, Open Graph, sitemaps, incremental static regen. - Performance: Core Web Vitals targets (LCP < 2.5s, INP < 200ms, CLS < 0.1). - Ecosystem: routing, data fetching, auth integration, CMS/blog interop. Options - Next.js (App Router, React 18, RSC + server actions) - Flutter Web (single codebase, a11y improvements; evaluate SEO constraints) Risks & Mitigations - SEO constraints with Flutter Web → fallback to Next.js for public surfaces if chosen. Rollout Plan - Implement public resource list and blog index prototype; measure CWV and a11y checks. Test Plan - Lighthouse/CWV, axe, keyboard nav tests; SEO meta validation. Acceptance Criteria - Decision recorded with rationale; prototype metrics captured; a11y/SEO sign‑off. Slash Commands - `/review areas=web,accessibility,security` - `/apply spec=openspec/specs/architecture.md` - `/archive link=`