Complete lifecycle for: - Web Stack Decision → merged to main - Profiles MVP → merged to main - Resources MVP → merged to main All proposals now marked as archived.
1.7 KiB
1.7 KiB
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=<PR>