morethanadiagnosis-hub/openspec/changes/2025-11-17-web-stack-decision/proposal.md

46 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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, SEOfriendly, performant web with parity to mobile.
Motivation
- Ensure the web stack supports public SEO content (resources/blog), membersonly features, and strong a11y/compliance.
Goals / NonGoals
- Goals: select stack, document SSR/SEO approach, a11y/testing strategy, and performance budgets.
- NonGoals: 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 signoff.
Slash Commands
- `/review areas=web,accessibility,security`
- `/apply spec=openspec/specs/architecture.md`
- `/archive link=<PR>`