What We Shipped
Today was a cleanup sprint on mobile — a lot of small things that were broken or just felt rough in the hand.
-
View Workout opens correctly on mobile — Tapping a workout with recorded data was quietly navigating away from the app instead of opening a details sheet. Root cause:
router.push('/workout/:id')works fine on desktop, but on mobile it's a hard page nav that drops you back at root. Now always opensActivityStatsModalin-place on mobile. -
Race/goal events in calendar — The mobile calendar had zero awareness of events. Added event rendering to the day detail panel: a flagged amber card appears above workouts for any events on that day, tapping it opens the full event detail.
-
Metric labels that teach — CTL, ATL, and TSB are second nature to data-heads but opaque to new athletes. Renamed labels everywhere to "Fitness (CTL)", "Fatigue (ATL)", "Form (TSB)" and added one-line definitions ("42-day avg", "7-day avg", "fitness minus fatigue") to the Training Load card on the home tab.
-
Profile sheet now scrolls — The settings menu was getting clipped. Turned out
overflow-hiddenon the root div was the culprit. Removed it and added proper bottom padding before Sign Out. -
Sticky coach input bar — Input field now sticks above the nav bar and lifts with the keyboard, so it doesn't get covered mid-conversation.
-
Home header name fallback — Email-prefix names like
ggan93were showing before the real name loaded. Changed the fallback to"Athlete"so there's never a jarring flash of account data. -
Post-workout detail page — New dedicated
/workout/:idpage with a Strava-like layout for reviewing completed activity data on desktop. -
Coach conversation history — Added a sheet to browse and switch between past AI coach conversations on mobile.
What We Learned
Mobile has a fundamentally different routing model — router.push is great on desktop but destructive on mobile SPAs. Any time you want to "open details" on mobile, it needs to be a modal/sheet, not a page nav.
What's Next
- Verify the day's fixes look right in production (Vercel deploys are live)
- Keep picking through mobile edge cases — the calendar and coach tabs still have room to improve