An Analytics App for Your Strava Running Best Efforts, PBs/PRs and Races
Ruby HTML TypeScript CSS JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test Rubocop fixes Jul 21, 2018
yarn.lock Update gem and npm dependencies Jul 28, 2018

Strafforts Powered by Strava

GitHub release license

Travis Codecov Code Climate

An Analytics App for Your Strava Running Best Efforts, PBs/PRs and Races

Strafforts is a web app that calls Strava API to fetch athletes' running best efforts, personal bests and races and visualize them in forms of data tables, line charts, pie charts etc., in such way athletes can perform some analysis like half marathon PB progression, fastest shoes used for a 10K race, how often 5K PB gets set, etc.

Originally developed as a personal open source Ruby console app just for fun, Strafforts has now been rewritten in Ruby on Rails, so that athletes can connect Strafforts with their Strava accounts and see visualized best efforts automatically.


Strafforts Main Screenshot Strafforts Graphs Screenshot

What are 'Estimated Best Efforts' (PBs/PRs)?

Quoting from Strava Support:

Estimated Best Efforts are automatically calculated using your GPS-based running activity, and reflect your fastest times for benchmark distances such as 1 mile, 5km, 10km, and half marathon. Strava can find your best effort at any point in each running activity. We do not require that a best effort starts at a mile split.

Side by side Best Efforts Strava Best Efforts

What are Strava races and how to create them?

Quoting from Strava Support:

Strava offers four different sub-categories within the Running activity type to allow for more detailed and focused analysis of your training. Those four tags are Run, Race, Long Run, and Workout.

Strava Run Type Tag


See Acknowledgements page for a comprehensive list.


contributions welcome PRs Welcome

As I'm actually a .NET developer by day, Strafforts is my first Ruby on Rails app that helps me learning the framework and creates something useful for analyze my running. Since it's so amateur, surely there are so much can be improved from a Ruby developer's point view. I will try my best to improve this and make it more useful for everyone.

Got any questions? Check out the FAQ in the app first to see if it's been asked before. If you have any feature idea, or are running into problems, please raise an issue on GitHub. If you want to make code changes, feel free to create PRs. Development guide can be found here if needed.


Strafforts is a project developed and maintained by Yi Zeng, licensed under GNU Affero General Public License v3.0, which means if you ever want to spin up your own fork or re-use any of the Strafforts components, your app must use the same license and open source.