trails/docs/roadmap.md
Ullrich Schäfer d20ec30bce
Add docs/roadmap.md and update CLAUDE.md
- Add docs/roadmap.md: strategic four-phase launch plan (feature complete →
  polish → beta → announce) with launch-blocking changes, post-launch backlog,
  and links to ideas/
- Update CLAUDE.md: fix stale phase-1-mvp OpenSpec reference, remove "Phase 2"
  label from Federation, add roadmap + ideas pointers, expand packages list
  with all 11 packages and accurate descriptions (including map vs. map-core
  split rationale)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 10:41:51 +02:00

81 lines
3.4 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.

# Roadmap
Strategic view of what ships when and why. For implementation detail, see the linked OpenSpec changes in `openspec/changes/`. For exploratory ideas not yet in a change, see `docs/ideas/`.
---
## Launch readiness
Five changes must ship before public announcement:
| Change | Why it blocks launch |
|---|---|
| [`route-sharing`](../openspec/changes/route-sharing/) | Visibility levels (private / public / shared-link) and forking. Federation depends on it. |
| [`social-federation`](../openspec/changes/social-federation/) | The platform is described as federated — launching without it would be misleading. ActivityPub, WebFinger, inbound Mastodon follows. |
| [`visual-redesign`](../openspec/changes/visual-redesign/) | Design system not yet implemented. Current UI is unstyled Tailwind. Must land before any public-facing announcement. |
| [`wahoo-production-cutover`](../openspec/changes/wahoo-production-cutover/) | Wahoo sandbox rate limits make the integration unusable at scale. Ops task, not a feature, but launch-blocking. |
| [`changelog`](../openspec/changes/changelog/) | Public `/changelog` is part of the launch narrative — how we communicate "here's what just shipped" to early users on day one. |
---
## Phases
### Phase 1 — Feature complete
Implement all launch-blocking changes above, in dependency order:
1. `route-sharing` (no dependencies)
2. `social-federation` (depends on route-sharing for public routes)
3. `wahoo-production-cutover` (ops, can run in parallel)
4. `changelog` (no feature dependencies)
### Phase 2 — Polish sprint
After features are stable, run a dedicated UI/UX review pass:
- Walk every user-facing flow end-to-end in a real browser
- Implement `visual-redesign` if not already complete (this change may span phases 12)
- Fix rough edges: empty states, loading states, error messages, mobile layout
- Review copy and i18n strings for consistency
- No new features during this phase — polish only
The polish sprint is its own phase because it requires a stable feature set. Polishing during active feature development is expensive churn.
### Phase 3 — Soft launch / beta
Invite 1020 real users before public announcement:
- Watch Sentry for crashes and unhandled errors
- Watch Grafana for performance regressions
- Watch for federation interop issues (Mastodon follow/unfollow, object delivery)
- Collect structured feedback on onboarding and core flows
- Fix anything critical; defer cosmetic issues to post-launch
### Phase 4 — Public announcement
Announce once beta feedback is resolved:
- Changelog entry for launch
- Social post / blog post
---
## Post-launch
These changes are scoped and designed but not blocking launch:
| Change | Notes |
|---|---|
| [`route-discovery`](../openspec/changes/route-discovery/) | Spatial map-based route exploration. The text `/explore` page covers the gap at launch. |
| [`activity-photos`](../openspec/changes/activity-photos/) | Photo uploads for activities. Enriches content but not a day-one requirement. |
| [`mobile-app`](../openspec/changes/mobile-app/) | React Native unified app. Substantial scope; explicitly post-launch. |
---
## Ideas (exploratory, not yet in a change)
See `docs/ideas/` for pre-spec explorations:
- `mobile-activity-recording/` — GPS tracking and activity logging from a native app
- `mobile-nearby-sync/` — BLE-based proximity discovery
- `self-host-overpass/` — Self-hosted Overpass API for POI overlays