Profile photo
Brandon Fang@bdmfang
  • Home
  • About
  • Blog
EmailLinkedInGitHubTwitter/XStrava

Personal Fitness Dashboard

Visualizing my marathon training data

This dashboard provides the charts and tools I personally wish Strava had. I sync my Strava activity history nightly into a Postgres database and query it directly from Next.js Server Components to minimize load time and stay under Strava API rate limits. A Vercel cron job handles pagination and upserts so the data stays fresh automatically. The Claude API and Vercel's AI SDK powers the AI chat interface.

Chat With the Data

Claude has access to my entire training history

Ask me anything about Brandon's training

AI can make mistakes.

Last Four Weeks at a Glance

Click on a circle to see that day's activities

Aug 17 to Aug 23
Aug 10 to Aug 16
Aug 3 to Aug 9
Jul 27 to Aug 2

Weekly Breakdown

This chart helps me with time-based training

Training Load

Performance Management Chart — fitness, fatigue, and form over 16 weeks

Heart Rate Analysis

Compare the time I've spent in each heart rate zone

Overall Stats

Not a triathlete yet — maybe one day

Run
Total Distance
204.34 mi
Moving Time
27 hr 14 min
Elevation
4,869 ft
Activities
24
Swim
Total Distance
0 yd
Moving Time
0 min
Elevation
0 ft
Activities
0
Ride
Total Distance
0.00 mi
Moving Time
35 min
Elevation
0 ft
Activities
1