The Strava kerfuffle
If you practice endurance sports, you might be familiar with the popular Strava app. If you're also a developer, you might know that they offer an API on which thousands of apps are built. This week, Strava announced unexpected changes to their API usage policy that left a lot of developers perplexed.
You can read Strava's announcement for yourself. DC Rainmaker has a great analysis here: Strava’s Big Changes Aim To Kill Off Apps. Essentially they are further restricting how the API and the data can be used by 3rd parties.
I care about this not only as a developer building on the Strava API, but also because it speaks about ethics, walled gardens, and who actually owns the data.
I made a small web app for myself that pulls my Strava activities and organizes them in a way that is easier for me to process, filter, search, and so on. I won't link the app (although if you dig around you'll probably find it), because I don't really want others to use it.
My initial reaction when I heard about this was a mild sense of outrage. Developers generally don't like it when the rug is pulled from under them, with very little warning to boot. Now, Strava's usage terms were somewhat vague and ambiguous even before, and this change won't improve that much, hence their need to issue a clarification in which they claim that less than 1% of apps will be impacted.
From what I can decipher, I won't be impacted personally since I'm only interested in my personal data.
I think that Strava could stand to be less hostile to developers, for several reasons.
First, Strava is built on crowd-sourced data. That data was generated by you and me; it's yours and mine, not Strava's. Strava is just a custodian of that data. Granted, they've derived their own data from our activities, but they can keep it as far as I'm concerned. I think that's fair.
Second, most of this data is not even generated in Strava's app in the first place. The vast majority of athletes (myself included) use smart devices such as watches, bike computers, GPS units, etc to record activities, save them to the Garmin/Wahoo/etc app, and from there send it to Strava. Once again, we are choosing to share our data with Strava.
Third, everyone benefits from an open system. Strava thrives thanks to the data injected by the myriad athletes that connect it to their devices. Strava users, in turn, get access to an endurance sports-focused social network. But since Strava's UI isn't great, thousands of apps have popped up (such as mine) that attempt to do a better job at that.
Fourth, they gave devs a ridiculously short 30 days to comply. For someone like me it doesn't matter, but for large apps that's nowhere nearly enough.
Finally - and I speak strictly for myself - even losing complete access to Strava's API wouldn't be a dealbreaker for me. I could make a few changes to my app to allow direct ingestion of .gpx
or .fit
files, and guess what, I wouldn't even need to use Strava anymore. I could export those directly from Garmin. Or I could (with some effort) sign up for Garmin's developer program. I fail to see how Strava benefits from driving me away.
Other developers may not be so lucky. There are big apps from large companies with lots of employees, that are running off of Strava's API. It remains to be seen how they will be affected. It's possible that some jobs will be lost.
The big lesson here is that you should be extremely cautious when deciding to build a business off of another company's API or data. As developers, we've gotten pretty cavalier and complacent about building software on this or that API. But who can guarantee that it will still be around a few years down the road, or that it will operate under the same terms and conditions? The sad answer is, no one.
I propose that, when building on anything you don’t directly control, approach it like defensive driving and assume that every other road user is out to kill you.