Introducing “Statistics for Strava”: An Open-Source app that analyses your Strava data
Strava is a fantastic tool for tracking your workouts, but its built-in analytics may not always provide the depth of insight data enthusiasts seek. Enter Statistics for Strava, an open-source, self-hosted web application I started working on a few months ago, that provides you with alternative stats and fun insights.

What is Statistics for Strava?
The goal of Statistics for Strava is to give users a different insights into their training history. It is particularly useful for those who want to analyze their activities in greater detail without relying on third-party services that may have data limitations or privacy concerns.
Some of the standout features include:
- A detailed dashboard with various statistics and visualisations
- Comprehensive activity history with sortable and filterable lists
- Monthly stats displayed in an easy-to-understand calendar view
- Gear tracking to monitor wear and tear on your equipment
- Eddington numbers for biking and running, helping you analyse long-term endurance efforts
- Segment analysis to track personal records and segment efforts
- A heatmap to visualize your most active locations
- History of Strava challenges
- User badges
A little backstory
This project started with a simple goal: showcasing my Strava activities on my personal GitHub profile. Since the repository was public, I documented the setup so others could use it as well.
Around the same time, I became more active in the r/selfhosted community and noticed that many popular projects offered a containerized setup. Inspired by this, I added container support, and version v0.1.0 was born 🐣.
As a cyclist, my initial focus was on cycling stats and activities. However, a few friends using the app requested support for running, leading to v0.2.0. Soon after, more users joined and started asking for additional sports like weightlifting, swimming, and snowboarding. To accommodate this, v0.3.0 introduced support for all sports tracked by Strava.
With the growing number of activities, performance challenges arose — some users even encountered “out of memory” errors (the fun kind). To address this, v0.4.0 brought a major backend overhaul, significantly improving performance.
Now, at the time of writing, the first stable version, v1.0.0, is just about to be released 🎉. I have no idea where this journey will lead, but I love working on this project and implementing all the amazing ideas from the community.
How to Get Started
Since Statistics for Strava is self-hosted, you’ll need to set up the app on your own server. Fortunately, it’s straightforward thanks to Docker. Here’s a quick overview of the setup process:
- Obtain your Strava API credentials — You’ll need a Strava Client ID, Client Secret, and Refresh Token.
- Set up Docker and Docker Compose — The app runs in a containerized environment for easy deployment.
- Configure the
.env
file – Adjust the settings to match your preferences, including language, units (metric/imperial), and more. - Run the container — Deploy the app using Docker Compose, and start analyzing your Strava data
For a step-by-step installation guide, check out the GitHub repository.
Get Involved
As an open-source project, Statistics for Strava thrives on community support. If you have feature ideas, need help, or want to contribute, check out the project’s GitHub issues or join the discussion on Discord.