unsubbed.co

Statistics for Strava

Statistics for Strava handles statistics dashboard generated from Strava data as a self-hosted solution.

Open-source Strava analytics, honestly reviewed. No marketing fluff, just what you get when you self-host it.

TL;DR

  • What it is: AGPL-3.0 self-hosted dashboard that pulls your Strava activity data and renders it with charts, heatmaps, gear tracking, and analytics that Strava itself doesn’t offer — or charges you for [README].
  • Who it’s for: Runners, cyclists, and triathletes who use Strava but want deeper stats without upgrading to Strava’s subscription, or who want local control over their athletic data [README][3].
  • Cost savings: Statistics for Strava itself is free. You still need a Strava account (free tier works). A $5–10/mo VPS runs the whole stack. Strava Premium runs ~$11.99/mo; if this dashboard covers what you need from premium analytics, that’s $144/year saved.
  • Key strength: Feature surface is surprisingly broad for a one-person project — heatmaps, gear maintenance tracking, Eddington numbers, segment history, Strava Rewind, AI workout suggestions, embeddable badges, PWA. Docker deployment, 1,633 GitHub stars, actively maintained to v4.7.4 [README].
  • Key weakness: This doesn’t replace Strava — it supplements it. You still depend on Strava’s API. If Strava continues restricting third-party app access (which they have been doing [3]), this tool’s data pipeline could break at any update. Solo developer project funded by “Buy Me a Coffee” — no company behind it.

What is Statistics for Strava

Statistics for Strava is a self-hosted web dashboard that connects to your Strava account via Strava’s official API, pulls your activity history, and presents it in a significantly richer interface than Strava’s own app or website provides. The project is built by Robin Ingelbrecht, a Belgian developer who sponsors it through Blackfire.io and Buy Me a Coffee. There’s no company, no funding round, no pricing page — it’s a well-maintained personal open-source project that happens to be genuinely useful [README].

The problem it solves is worth understanding with some context. In May 2020, Strava cut third-party app access to leaderboard data for all 44,000 registered developer apps, removed the web route builder from free users, and blocked free users from seeing full segment leaderboards [3]. The DC Rainmaker analysis at the time was blunt: “Strava sold its segmented soul” [3]. That wasn’t the end of it — by late 2025, Strava was preparing for an IPO at a $2.2 billion valuation [1][2], which means more monetization pressure, not less. Forum discussions at LetsRun show significant user frustration: “I’m guessing within 2 years of them going public, I quit and just use Garmin” [2]. Another user: “In the free version I don’t think I can even view my workout splits on the app” [1].

Statistics for Strava exists in that gap. It doesn’t replace Strava’s social layer — the segments, kudos, clubs, and route-sharing that keep people using it. What it does is pull your personal activity data through the API and render it locally in ways that Strava either doesn’t support or gates behind subscriptions.

At 1,633 stars and version 4.7.4, this isn’t a prototype — it’s a mature side project with Docker-based deployment, a full documentation site, and an active Discord community [README].


Why people choose it

The third-party reviews we found for this specific tool are limited — the sources collected for this review are primarily about Strava itself, not Statistics for Strava directly. What we can synthesize from context:

The Strava paywall tightens every year. The 2020 DC Rainmaker piece [3] documented the moment Strava deliberately broke third-party app integrations as a business move. The IPO preparation in 2025 [1][2] signals that pattern continuing. Users with years of activity data are understandably nervous about what features disappear next from the free tier, or what API access gets restricted. A self-hosted dashboard that’s already fetched your historical data is insurance against that.

Strava’s own analytics are shallow. Even on premium, Strava shows you what you did but doesn’t particularly help you understand trends over time. The Statistics for Strava feature list reads like a list of things Strava should have built but didn’t: Eddington number tracking, gear maintenance alerts, segment effort history, year-in-review (Strava Rewind equivalent), and a full heatmap of where you’ve been most active [README]. These aren’t fringe requests — they’re the things active athletes ask for on Reddit every year.

Data sovereignty is the subtext. The sentiment in the LetsRun thread [2] mirrors what you see in r/selfhosted: people increasingly uncomfortable that years of granular GPS data about their movement habits lives on a company’s server that’s optimizing for IPO metrics. Self-hosting a dashboard doesn’t get your data off Strava’s servers — but it does mean you’re processing your own data locally, and if Strava closes their API tomorrow, your historical imports are already there.


Features

Based on the README (v4.7.4):

Core analytics:

  • Dashboard with aggregated stats and charts across all activities [README]
  • Full activity list with detailed breakdown per workout [README]
  • Monthly view with interactive calendar [README]
  • Best efforts tracking across distances [README]
  • Eddington number — the largest number N where you’ve done N activities of at least N distance [README]

Gear and maintenance:

  • Gear stats showing total distance/use per bike, shoe, etc. [README]
  • Custom gear configuration (add non-Strava gear) [README]
  • Maintenance tracking — logs wear and tear, alerts when service is due [README]

Geography and segments:

  • Heatmap showing activity density across your routes [README]
  • Segment history and effort tracking [README]

Social and visual:

  • Strava Rewind — year-in-review summary [README]
  • Challenges tracking — which Strava challenges you’ve completed [README]
  • Activity photos archive [README]
  • Milestones timeline [README]
  • User badges — embeddable HTML/SVG widgets for your blog, forum profile, or GitHub README [README]

Technical:

The breadth here is the main argument for this project. It’s not just “here’s a chart of your runs” — it’s a meaningful complement to the Strava app with features that most dedicated athletes will actually use.


Pricing: SaaS vs self-hosted math

Statistics for Strava itself: $0. AGPL-3.0, self-hosted, no usage tiers, no feature gating [README].

What you still pay for: A Strava account. The free tier gets you access to the API for your own data. If you were paying for Strava Premium solely for advanced analytics (training load, segment analysis, etc.), and Statistics for Strava covers what you need, you can potentially downgrade to Strava free and save ~$11.99/mo ($144/year).

Important caveat: Strava free has meaningful limitations. If you use premium for segment leaderboards, route creation, or training load metrics, you can’t replace those with this dashboard [3]. Statistics for Strava only touches your personal activity data — it doesn’t restore features Strava stripped from free accounts.

Self-hosting cost:

  • VPS (Hetzner CX11 or equivalent): ~$4–6/mo
  • Docker, no database server required beyond what’s bundled
  • Domain optional — you can run it at an IP if it’s just for yourself

Total self-hosted cost: ~$5–6/mo for the infrastructure, zero for the software.

Break-even if replacing premium analytics: If this covers your analytics needs from Strava Premium, you save ~$6–7/mo net after VPS costs. Over a year: ~$84 in your pocket. Not dramatic, but also not the main reason to run it — the main reason is owning the visualization layer of your data.


Deployment reality check

Docker is the primary deployment method. The documentation site covers installation in detail. Based on the project structure and feature set, here’s a realistic assessment:

What you need:

  • A Linux VPS with ~1–2GB RAM
  • Docker and docker-compose
  • A Strava API application (free to create at developers.strava.com) — you need Client ID and Client Secret
  • Optionally: a domain and reverse proxy (Caddy or nginx) for HTTPS

What the initial setup involves:

  • Create a Strava API app at developers.strava.com to get credentials — this is the non-obvious step. It takes 5–10 minutes but requires understanding redirect URIs and OAuth callback configuration.
  • Clone the repo, configure environment variables, run docker-compose up
  • Authorize your Strava account via OAuth
  • Wait for the initial data sync — if you have years of activities, this can take a while depending on Strava’s API rate limits

What can go sideways:

  • Strava API rate limits. Strava throttles API calls. Historical imports of large activity archives will be slow — this isn’t a failing of Statistics for Strava, but it means the initial setup isn’t instant.
  • API changes. This is the real risk. Strava already broke third-party leaderboard access in 2020 [3]. If Strava restricts personal data access through their API, Statistics for Strava’s data pipeline breaks. The project would need updates to adapt. Given the solo developer model, there’s a real — if small — risk of lag between an API change and a fix.
  • AGPL license. If you’re a developer who wants to embed this in a product or fork it for a client, AGPL requires you to open-source your modifications. This matters for commercial use cases; for personal self-hosting it’s irrelevant.
  • Solo developer bus factor. Robin Ingelbrecht is the primary maintainer. The project has a Discord and community contributions, but if the developer moves on, the maintenance burden falls to whoever forks it.

Realistic time for technical user: 30–60 minutes to a running instance. For a non-technical founder: either follow the documentation carefully (90–180 minutes) or have someone deploy it for you — the Strava OAuth step is the most confusing part.


Pros and cons

Pros

  • Genuinely broad feature set for a free, self-hosted project. Heatmap, gear maintenance, Eddington, AI suggestions, embeddable badges — most competing tools charge for subsets of this [README].
  • PWA support means it works cleanly as a phone app without going through an app store [README].
  • Actively maintained at v4.7.4 with a changelog, CI pipeline, Discord, and Blackfire.io sponsorship [README].
  • Docker-first deployment keeps the setup straightforward for anyone with basic server experience [README].
  • Your historical data, stored locally. Once synced, you own the export. Strava can change their API tomorrow; your already-synced data stays.
  • No per-user cost. Deploy once, add family members or friends who also want it. No seat licensing.
  • AI workout assistant is a meaningful addition that Strava itself doesn’t offer on the free tier [README].

Cons

  • Still depends on Strava. This is not a Strava replacement. You need an active Strava account and API access. If Strava kills personal data API access or charges for it, this tool breaks. Given recent history [3][1], that’s not a paranoid risk.
  • AGPL license, not MIT. Less permissive than MIT. You can’t incorporate this into a commercial product without open-sourcing your modifications. Fine for personal use, relevant for anyone building on top of it.
  • Solo developer project. No company, no funding, no SLA. The project is well-maintained today; that could change. This matters more if you’re deploying it for clients rather than yourself.
  • Initial sync latency. Strava API rate limits mean first-time syncs of large archives are slow — not a blocker, but set expectations accordingly.
  • No data import from other platforms. If you record to Garmin Connect, Apple Health, or Polar Flow and manually sync to Strava, you’re dependent on that chain. Activities that never touched Strava don’t appear here.
  • No routing or training planning. This is a statistics viewer, not a training tool. It won’t replace TrainingPeaks, intervals.icu, or Garmin Connect’s training load analysis.

Who should use this / who shouldn’t

Use Statistics for Strava if:

  • You have years of Strava activity history and want richer visualization than Strava’s own app provides.
  • You’re currently paying for Strava Premium primarily for analytics and wonder if you can downgrade to free.
  • You care about having a local copy of your activity data rendered in a format you control.
  • You’re comfortable running a Docker container on a VPS, or you’ll pay someone once to set it up.
  • You want embeddable badges for a blog, GitHub profile, or forum signature.

Skip it if:

  • You don’t use Strava. Full stop — this tool has no value without an active Strava account.
  • You’re looking for a full Strava replacement with social features, segment leaderboards, or route creation. This doesn’t touch any of that.
  • You need training analysis tools — power analysis, training stress score, periodization planning. Use intervals.icu (free, powerful) or TrainingPeaks instead.
  • You’re not willing to manage a VPS and aren’t going to pay someone to deploy it. In that case, just use Strava’s own interface.
  • You need a multi-user setup with auth management and access controls. The project is designed for personal use; multi-user deployments are possible but not the primary design target.

Alternatives worth considering

For Strava data analytics (self-hosted):

  • Runalyze — more training-science focused (VO2max estimation, training load, race prediction). Harder to self-host but more analytical depth. Worth comparing if you want performance metrics, not just activity logging.
  • FitTrackee — actual Strava alternative, not supplement. Tracks activities natively without Strava dependency. Smaller ecosystem, no mobile app.

For Strava analytics (SaaS, not self-hosted):

  • intervals.icu — free, powerful, cycling and running training analytics. Connects to Strava directly. If you want training load analysis and calendar planning, this is the best free option and doesn’t require self-hosting anything.
  • Elevate — browser extension and web app for Strava analytics. More limited than Statistics for Strava’s feature surface for most users.

For leaving Strava entirely:

  • Garmin Connect — if you use a Garmin device, the platform has matured and handles most analytics use cases. As LetsRun forum users pointed out [2], Garmin’s main advantage is that it’s tied to a hardware company rather than a social media business model.
  • OpenStreetMap + manual GPX — the nuclear option for the truly privacy-focused.

The realistic comparison for most users is Statistics for Strava vs. intervals.icu: one requires self-hosting, the other doesn’t. If you want richer analytics without touching a server, intervals.icu is the answer. If you want local data control, gear maintenance tracking, heatmaps, and the full feature set in README, Statistics for Strava is the better pick.


Bottom line

Statistics for Strava is a well-built free tool for a specific, genuine problem: Strava has been paywalling and restricting features for years [3], is heading toward an IPO that will only increase monetization pressure [1][2], and its own analytics have always been shallow for serious athletes. This dashboard fills that gap with a feature list — heatmaps, gear maintenance, Eddington tracking, AI suggestions, embeddable badges — that competes with what paid tools offer.

The catch is real: you still need Strava. This is a data visualization layer, not a replacement. If you’re already in the Strava ecosystem and comfortable with a basic Docker deploy, the value is clear. If you’re looking to escape Strava entirely, this isn’t the tool — it’s the last thing you run before you quit.

If the deployment step is the blocker, upready.dev sets this up for clients as a one-time engagement.


Sources

  1. LetsRun.com Forum“Strava preparing for IPO - valued at $2.2 billion” (page 2, September 2025). https://www.letsrun.com/forum/flat_read.php?thread=13791855&page=1
  2. LetsRun.com Forum“Strava preparing for IPO - valued at $2.2 billion” (page 1, September 2025). https://www.letsrun.com/forum/flat_read.php?thread=13791855
  3. Ray Maker, DC Rainmaker“Strava Cuts Off Leaderboard for Free Users, Reduces 3rd Party Apps for All, and More” (May 18, 2020). https://www.dcrainmaker.com/2020/05/strava-leaderboard-reduces.html

Primary sources:

Features

Analytics & Reporting

  • Charts & Graphs
  • Dashboard

Mobile & Desktop

  • Mobile App
  • Progressive Web App (PWA)