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

Jul 13 to Jul 19
Jul 6 to Jul 12
Jun 29 to Jul 5
Jun 22 to Jun 28

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
137.55 mi
Moving Time
18 hr 4 min
Elevation
2,434 ft
Activities
18
Swim
Total Distance
5,700 yd
Moving Time
1 hr 25 min
Elevation
0 ft
Activities
2
Ride
Total Distance
3.12 mi
Moving Time
16 min
Elevation
118 ft
Activities
1