What We Shipped
Onboarding Wizard v2
The biggest feature of the day. Commit 53285a24 replaces the old onboarding flow with a 6-step personalized wizard that actually shows athletes what they're signing up for before they commit.
What changed:
- 6-step guided flow — sport selection, experience level, goal race, training availability, and current fitness baseline, all in a focused step-by-step UI
- Live plan preview — athletes see a sample week of their generated plan before completing setup, so there are no surprises on day one
- Personalization hooks — inputs feed directly into the plan generation engine, not just metadata fields
This is the kind of onboarding that actually converts. First impressions matter and the old single-page form wasn't doing the job.
Race Explorer — Browse & Claim Ironman Results
Commit 2fce8fe5 introduces the Race Explorer at a new route — athletes can browse Ironman race results, search for specific competitors, and claim their own results to pull into their training history. It's part athletic stalking tool, part personal race archive.
Also fixed in 698fcc3e: the API call now uses $top=5000 to fetch all race results in one request instead of paginating into weirdness. Simple fix, meaningful difference when an event has thousands of finishers.
Interval Comparison Chart (Runna-Style)
Commit 4fa742e9 adds a visual interval comparison chart to the workout detail view. Athletes can now see their target vs. actual performance for each interval — pace, power, or HR — in the same stacked format that made Runna's workout analysis popular. If you missed a rep, it's immediately obvious.
Polar, Oura, and Whoop Integrations
Three feature branches merged in a row: 6fdfef5c, 97d00802, 13b877e1, 01cf7bce. Polar activity sync, Oura recovery data (HRV, sleep scores, readiness), and Whoop strain/recovery metrics all land today.
This completes the wearable trifecta. Athletes who aren't on Garmin or Strava now have first-class integration paths, and the AI coach gets richer recovery context to pull from when making training recommendations.
Swim Metrics FIT Parser Fix
Branch fix/swim-metrics-fit-parser (merged in 6fdfef5c) patches the FIT file parser for swim activities. Stroke count, SWOLF, and pool length were silently failing — now they parse correctly and show up in workout detail.
Node.js 22 LTS Upgrade
Commit bc36ee9a bumps the runtime to Node 22 LTS. Housekeeping, but the right kind — performance improvements, native fetch, better ESM support, and staying current with the security release track.
The Takeaway
Nine commits, three merged feature branches, and the platform's ecosystem just got dramatically wider. The onboarding wizard v2 and Race Explorer are the headliners, but the wearable integrations are quietly significant — Polar, Oura, and Whoop together cover a huge slice of the serious endurance athlete market that was sitting on the sidelines.