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

New

Claude has access to my Strava data

Ask me anything about Brandon's training data

AI can make mistakes.

Last Four Weeks at a Glance

Click on a circle to see that day's activities

Jun 8 to Jun 14
Jun 1 to Jun 7
May 25 to May 31
May 18 to May 24

Weekly Breakdown

This graph 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
47.68 mi
Moving Time
6 hr 14 min
Elevation
1,873 ft
Activities
7
Swim
Total Distance
6,600 yd
Moving Time
1 hr 46 min
Elevation
0 ft
Activities
2
Ride
Total Distance
55.27 mi
Moving Time
4 hr 25 min
Elevation
2,070 ft
Activities
6