Strava Mobile App Versions
Article Summary
Jeff Remer from Strava explains why their mobile app jumped from version 5.14 to 14.0 in just four months. Spoiler: it wasn't feature bloat.
Strava's engineering team ships mobile updates every two weeks through a process called Cadence. When they automated their release process in early 2017, they made a controversial decision: couple the app version number directly to their release branch number, abandoning traditional semantic versioning.
Key Takeaways
- Biweekly releases meant jumping from v6.0 to v14.0 in four months
- Coupled branch names with version numbers to simplify automation
- Each major version doesn't signal breaking changes, just a new release cycle
- Kept major.minor.patch format for flexibility despite not following semver spec
Strava prioritized release automation and internal clarity over external versioning conventions, treating each biweekly release as a major version bump.
About This Article
Strava's release branches used year-based numbering like train/2017/5, which reset every year. This made automation messy and required workarounds to handle the annual transitions.
Jeff Remer's team removed the year from branch names and tied the release branch number directly to the app version instead. This eliminated the annual reset problem and made automation much simpler.
Engineering, marketing, and support teams could all reference the same version number. They no longer had to translate between different naming conventions, which made communication clearer across the organization.