# Roadmap — From Design to Launch This maps the design package (Milestone 1, this repository state) to concrete future milestones with acceptance criteria, so backers and contributors can see how the funded design translates into working software. Milestone boundaries are proposals; each will be scoped and funded individually on the public ledger. ## Milestone 2 — Core backend & scoring engine **Scope:** API service skeleton per `docs/08-architecture.md`; PostgreSQL/PostGIS provisioning from `db/schema.sql` with migrations; Open-Meteo `ForecastProvider` with grid-snapped cache (ADR-006); scoring engine implementing rubric v1.0; endpoints `GET /v1/spots`, `GET /v1/spots/{id}`, `GET /v1/spots/{id}/forecast`, `GET /v1/spots/{id}/score` conforming to `api/openapi.yaml`. **Acceptance:** all fixtures in `examples/scoring-fixtures.json` pass; OpenAPI contract tests green; NFR-P3/P4/P5 latency targets met against a 50k-spot seeded database; `docker compose up` brings up API + DB with demo data (NFR-M5). ## Milestone 3 — Map frontend (read-only) **Scope:** MapLibre map view per `docs/03-wireframes.md` §1 with score-colored spot pins, clustering, wind arrows; spot detail panel (§2); forecast panel with 48 h hourly and 7-day daily views (§3); unit preferences (NFR-I1); list view (NFR-X2); PWA shell (NFR-O1). **Acceptance:** Lighthouse budgets NFR-P1/P2/P6; WCAG 2.1 AA audit of non-map UI; works against the Milestone 2 API; fallback list view fully functional with WebGL disabled. ## Milestone 4 — Community features **Scope:** accounts (NFR-S4), spot submission/edit flow with moderation queue (NFR-S6), reviews, hazard reports, photo upload with EXIF stripping, deletion/anonymization flow (NFR-D5). Seed import of an initial spot dataset (community-sourced + OSM `sport=kitesurfing` / suitable open-area tagging, with manual curation — see `docs/04`). **Acceptance:** moderation runbook published; rate limits (NFR-S2) enforced and tested; abuse-handling process from `CODE_OF_CONDUCT.md` wired to in-app reporting. ## Milestone 5 — Alerts, observations & polish **Scope:** NOAA/NWS alert + NDBC observation enrichment for US spots (ADR-002); "notify me when my spot hits Good for my kite" email/web-push alerts (opt-in, computed server-side from cached forecasts — no per-user upstream load); i18n extraction and first community translation round (NFR-I2); session logging (opt-in) feeding future rubric recalibration (ADR-004). **Acceptance:** alert latency ≤ 15 min from forecast refresh; stale-data handling per NFR-A3 demonstrated by fault injection. ## Milestone 6 — Reference deployment & 1.0 release **Scope:** production deployment guide (single-node and small-cluster), backups and restore drill (NFR-M4), monitoring dashboards (NFR-M3), security review of NFR-S items, public launch of the reference instance, 1.0 tag. **Acceptance:** an independent contributor can stand up a working instance from the docs alone in under one hour (tested with a volunteer who hasn't seen the codebase); 99.5% availability target instrumented and published. ## Explicit non-goals (recorded so scope stays honest) - Native mobile apps (the PWA is the mobile story for 1.x). - ML-based scoring (ADR-004 — revisit only after session-log data exists). - Live webcams, paid premium tiers, advertising — excluded by charter (`docs/09`).