Internal · Decision aid
PRODUCT REQUIREMENTS
Comprehensive PRD covering all JoyVelo modules — JoyOne, JoyTravel, JoyFitting, Training, JoyAnalyze, Reviews, News, WorldTour. Decision space and next-step options.
Generated 2026-06-22. This page is a summary of the full document. For the unabridged version with file map and open questions, see the GitHub repo or download the markdown.
0. Module map
Quick view of every module, where it lives, and current state.
Marketing site & content
Live, 47 reviews + ~12 news + 18 WorldTour teams- · /
- · /review
- · /review/[slug]
- · /news
- · /news/[slug]
- · /worldtour-race
- · /worldtour-race/team/[id]
- · /worldtour-race/race/[id]
JoyOne
Live with localStorage; cloud sync pending SQL migration- · /joyone
- · /joyone/connect
- · /login
- · /account
JoyTravel
GPX import + library + 2D detail + builder v1 live; map drawing pending- · /joytravel
- · /joytravel/routes
- · /joytravel/routes/[id]
- · /joytravel/builder
JoyFitting
Calculator live; selection guides editorial only- · /joyfitting
- · /joyfitting/calculator
- · /joyfitting/frame-selection
- · /joyfitting/handlebar-selection
- · /joyfitting/saddle-selection
- · /joyfitting/handlebar-adjustment
- · /joyfitting/saddle-adjustment
- · /joyfitting/ai
Training
Builder + 7 science articles live- · /training
- · /training/builder
- · /training/altitude-training
- · /training/carb-periodization
- · /training/cold-weather
- · /training/heat-acclimation
- · /training/mental-training
- · /training/sleep-recovery
JoyAnalyze
Marketing only; upload placeholder; DTW analyzer pending- · /joyanalyze
- · /joyanalyze/power-meter-comparison
- · /joyanalyze/upload
8. Decision space — what to build next
Given everything above, here are the highest-impact options ranked by ROI. Pick one to focus on for the next sprint.
Ship cloud sync end-to-end
RecommendedUnblocks everything. Once users have cloud sync, they are sticky.
1-2 weeks (mostly your SQL migration + E2E testing)
$0 (Supabase free tier covers up to 50K MAU)
Implement 2-3 OAuth integrations
Reduces manual export friction — biggest usability complaint.
1 week per vendor (dev account + OAuth + sync)
$0 vendor cost, but 2-4 weeks vendor approval per platform
JoyAnalyze real upload + DTW
Differentiator. Power meter comparison is a popular topic.
2-3 weeks (DTW algorithm + UI + testing)
$0 (client-side compute; Supabase for storage)
Per-review OG image generator
Share previews dramatically increase CTR on X/Reddit/cycling forums.
1-2 days
$0 (Vercel edge function)
JoyTravel map drawing
Second-most-clicked button on JoyTravel page, but builder is GPX-only.
1 week (Leaflet + OSM + OSRM)
$0 (OSM tiles free)
Newsletter + email capture
No email list yet = no way to re-engage non-signups.
2-3 days
Resend $20/mo or Mailchimp $13/mo
Module highlights
JoyOne — 5-tab dashboard
The most important module. 5 tabs (Overview / Activities / Fitness / PDC / Profile), integrations grid with honest 3-state UX (oauth-ready / upload-only / coming-soon), pure-browser FIT parser (replaces broken @garmin/fitsdk SDK), rule-based AI Coach summary.
JoyTravel — GPX library
Library, 2D detail page (SVG polyline + elevation chart + POI editor), and GPX-only builder v1. Biggest gap: no map drawing yet — biggest planned improvement.
JoyFitting — calculator + guides
6-step wizard calculator live with cloud sync. Selection tools and adjustment guides are editorial-only. AI fitting is a marketing stub pending roadmap.
Training — workout builder + science
Builder with zwo/erg/mrc export, 7 deep-dive science articles (altitude, carbs, heat, cold, mental, sleep).
JoyAnalyze — marketing-only
Power-meter / radar / HRM comparison framing, but the actual upload + DTW analyzer is 2-3 weeks of engineering we have not committed to yet.
Cross-cutting
- · Auth: Supabase magic link + Google OAuth. Resend upgrade for @joyvelo.com sender — $20/mo.
- · SEO: 31-URL sitemap, robots.txt, default OG image, OG image per page pending.
- · Perf: homepage 3.6× faster (3.1s → 0.87s) via Suspense streaming + 5s Sanity timeout.
- · Notifications: toast + ConfirmDialog live; email digest pending.
Open questions for you
- Cloud sync priority: willing to spend a few hours running SQL migrations this week?
- Resend upgrade: $20/mo worth it for @joyvelo.com sender, or keep Supabase default SMTP?
- JoyAnalyze priority: meaningful differentiator but 2-3 weeks of work — worth doing now or after JoyOne is sticky?
- JoyTravel map drawing vs JoyAnalyze — pick based on traffic (check Vercel analytics).
- Newsletter: when to start? 100 subscribers → useful for feedback on new reviews.