
AI-native endurance platform analyzing recovery, training load, and Garmin data for personalized coaching.
Endurance athletes already generate plenty of raw data — HRV, sleep, training load, recovery scores — through devices like Garmin. Raw numbers on a dashboard don't tell a runner what to actually do with today's training, though. PaceKeep needed to turn that data into personalized, actionable coaching rather than one more set of charts to interpret alone.
We built PaceKeep as a React Native app backed by a Python FastAPI service and PostgreSQL. Training, sleep and recovery data syncs in automatically from a user's Garmin account via the Garmin Connect API, and instead of just visualizing it, an OpenAI-powered layer interprets recovery status, training load and historical trends together into personalized coaching guidance an athlete can act on.
Client
Cross-platform React Native app where athletes view recovery status, training load and coaching guidance.
API
Python FastAPI service handling user data, Garmin sync and the AI coaching layer.
Data
PostgreSQL storing synced Garmin metrics, training history and generated coaching output.
Garmin integration
Syncs activity, sleep and recovery data from a user's Garmin account via the Garmin Connect API.
AI coaching layer
Uses OpenAI to turn recovery and training-load metrics into personalized, actionable coaching guidance rather than raw charts.
Training, sleep and recovery metrics sync directly from a user's Garmin account via the Garmin Connect API — no manual entry.
OpenAI turns recovery and training-load data into personalized guidance an athlete can act on.
A single React Native codebase delivers the experience across iOS and Android.
Recovery and training metrics are stored in PostgreSQL as structured, queryable history — a foundation for deeper analysis as the platform grows.
Building something similar?
Let's Talk