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

1.6 KiB
Raw Blame History

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>