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

Oct 12 to Oct 18
Oct 5 to Oct 11
Sep 28 to Oct 4
Sep 21 to Sep 27

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
244.39 mi
Moving Time
32 hr 20 min
Elevation
7,096 ft
Activities
31
Swim
Total Distance
0 yd
Moving Time
0 min
Elevation
0 ft
Activities
0
Ride
Total Distance
0.00 mi
Moving Time
13 min
Elevation
0 ft
Activities
1