Fitness
Unified Training & Body Composition Analytics
This project came from my own weightlifting and body recomposition journey. I found a system of fat reduction and muscle increase that helped me get tremendous results in 6 months, and I wanted to help others do the same. Fitness data is scattered across apps that don't talk to each other. Strava tracks your runs, COROS logs your heart rate, and a DEXA scan lives in a PDF. Fitness pulls it all into one dashboard and makes it actionable with training load analytics, body composition trends, and injury risk indicators. I'm now testing it within our gym community called Everfit Motion.
Visit Live Site
The Problem
People pursuing body recomposition generate data across 5+ apps with no unified view. Strava doesn't know your body composition. Your DEXA scan doesn't factor into your training plan. Training load calculations require manual spreadsheets. The result: people collect data they never act on because synthesizing it takes more effort than the workout itself.
Research & Discovery
Dogfooding: Used the dashboard daily throughout my own 6-month body recomposition, and every design decision came from hitting my own pain points as a real user
DEXA scan data was the most valuable and least accessible. Everyone I talked to had scans but never looked at the results more than once because the PDFs are dense and clinical. Making that data visual and trackable over time was the breakthrough insight
Strategy
Target customer: People pursuing body recomposition, specifically fat reduction and muscle increase, who track data across multiple devices and want actionable insights, not just more charts. Competitive landscape: Strava is social but not analytical. TrainingPeaks has deep analytics but no body composition. No product unifies training load with body composition tracking. Product thesis: The value isn't in collecting data, it's in connecting data across sources to surface insights no single app can provide. Current status: Testing with Everfit Motion gym community after proving the system on myself with 6 months of results.
What I Built
Body Composition Tracking
Most fitness apps track weight, but weight alone is misleading during recomposition because you can gain muscle and lose fat while the scale barely moves. The progress dashboard shows body fat percentage, lean mass gained, and fat lost separately. The scan summary calculates net recomposition and weekly fat loss rate so you can see if your program is actually working.



Data Source Integrations
Fitness data lives in silos. Strava knows your cardio, COROS has your heart rate zones, and BodySpec has your DEXA scans. I built integrations for all three so everything feeds into one dashboard. Strava syncs automatically via webhooks, COROS imports via .FIT files, and DEXA scans are parsed directly from PDF. Zero manual entry after initial setup.



Key Decisions
Used Strava webhooks instead of polling for real-time sync with no rate limit issues and instant dashboard updates after a workout
Built a custom DEXA PDF parser instead of manual entry. Scans have a consistent format, so regex extraction is reliable and saves 15 minutes per scan
Built with Recharts instead of D3 because the charts are standard (line, bar, scatter) and Recharts integrates natively with React, saving weeks of custom SVG work
Stored everything in Supabase/Postgres instead of a time-series DB. The data volume is personal-scale, and Postgres's JSON columns handle the varied schemas from different devices
Results & Impact
- 3 data sources unified into one dashboard, replacing manual spreadsheet tracking entirely
- Strava webhooks processing activities in real-time, with zero manual data entry after initial setup
- DEXA PDF parser extracting 20+ body composition data points from unstructured scan reports
- Training load dashboard surfacing injury risk indicators (ACWR > 1.5) that were invisible before