For one person, the paid layer on top of recording is analysis over your own files: maps, splits, best efforts, a training-load curve, a heatmap and goals. An agent can build that from FIT and GPX files in a weekend with no Strava API at all, and ready-made versions like Endurain and Intervals.icu already exist. What you can't rebuild is the network: segment leaderboards ranked against everyone else, friends, kudos, and route suggestions drawn from millions of other people's tracks. If those are why you pay, a build replaces the dashboard and not the reason.
Before you buildFree Strava still records and shares your activities, and Intervals.icu gives free training analysis. Try those before building.
Build me a personal training log to replace the analysis side of Strava. Requirements: - Python 3.12 with FastAPI, Jinja pages and a little vanilla JS on http://127.0.0.1:4880; Leaflet with OpenStreetMap tiles for maps and Chart.js for charts. - Import: watch ./inbox and read .fit, .fit.gz, .gpx and .tcx files (`fitparse`, `gpxpy`), including the activities/ folder of a Strava bulk export plus its activities.csv for names and gear. Store everything in SQLite at ./data/training.db (SQLAlchemy): activities, samples thinned to one point per 5 seconds, laps. Skip duplicates by start time and duration. - Activity page: the track coloured by pace or heart rate, elevation, pace/power/heart-rate charts, splits per km or mile, and best efforts for 1 km, 5 km, 10 km, the half marathon and 20-minute power. - Dashboard: weekly and monthly distance and time, personal records, monthly distance goals with progress, and a training-load curve: TRIMP from heart rate, or TSS from power with FTP set in settings, drawn as fitness, fatigue and form. - Heatmap: every track on one map with a sport filter, built as a single GeoJSON layer. - Routes: click points on the map, snap them to roads or trails through BRouter (BROUTER_URL in .env, default the public server), show elevation and export GPX. - My own segments: select a stretch of one activity, and list my times over it across all activities, matching tracks within 25 m of the stretch. - Single user. No accounts, no telemetry, local-first. Outbound calls: map tiles and BRouter. - Out of scope: the Strava API, live recording, feed and kudos, other people's segments, a mobile app. - README: how to request a Strava export (Settings, My Account, Download your account), and an honest note that leaderboards and route suggestions from other people's data stay with Strava.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Strava.
Extend the training log in this folder. Requirements: - Add a `sync-garmin` command that pulls new activities from Garmin Connect with `garminconnect`, using GARMIN_EMAIL and GARMIN_PASSWORD from .env, and saves each original .fit file in ./inbox so the normal import picks it up. - Remember the last synced activity id in ./data/training.db; run it from cron or on demand. - Stop with a clear message if Garmin asks for a verification code; never retry in a loop. - Update the README, including that this unofficial route can break when Garmin changes.
Add a weekly summary to the training log in this folder. Requirements: - Every Monday at 07:00 local time, send an email through SMTP settings in .env with last week's distance, time, longest activity, new personal records and training-load change. - Include a small PNG map of the longest activity, drawn with `staticmap` from the track. - Schedule it with APScheduler inside the FastAPI process, and add a `send-summary --dry-run` command that prints the message instead of sending it. - Update the README.
Add training plans to the training log in this folder. Requirements: - Create a plan for a race date: weekly distance targets that build for 3 weeks and ease in the fourth, editable per week in the UI. - On the dashboard show planned against actual distance for each week, with the gap in kilometres. - Store plans in ./data/training.db and export a plan to an .ics file with one all-day event per week. - Out of scope: day-by-day workouts and adaptive coaching. - Update the README.
Strava is where the people you train with already are, and segment competition and kudos only exist there. Reddit threads about leaving keep coming back to the same split: if you only want analysis, free tools do it, but runners and riders with a club or a group on Strava stay for the leaderboards and the route and heatmap tools.
Estimate · Runs on your computer for free. A small VPS adds about $5 a month if you want it reachable from your phone. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | Record activities and join the community feed. |
| Individual | $11.99 | $6.67 | Routes with offline maps, segment leaderboards, advanced training analysis and workout insights, custom goals and challenges, Fitness Score. |
| Family | — | $11.67 | Individual features for four accounts. |
| Student | — | $3.33 | Individual features at half price for verified students. |
| Strava + Runna | — | $12.50 | Individual features plus Runna's custom running plans and coaching. |
Free lets you record and share activities and join the community; routes, segment leaderboards, advanced analysis and Fitness Score are subscription features.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Segment leaderboards that rank you against other people, The feed, kudos, clubs and friends.
About $11.99 a month on the Individual subscription plan, $143.88 a year (checked 2026-10-19).
Segment leaderboards that rank you against other people; The feed, kudos, clubs and friends; Route suggestions and popularity heatmaps built from everyone's activities; Automatic uploads from watches, bike computers and phone apps; Saved routes with offline maps on your phone. If any of those matter to you, keep paying.
Yes: Endurain (open source), FitTrackee (open source), Intervals.icu (free).