46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# Proposal: Web Stack Decision
|
||
|
||
Status: draft
|
||
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>`
|
||
|