Slopes Diaries is my ongoing journey to turn my indie app into a more sustainable part of my business. First time reading? Catch up on the journey so far.
What is Slopes? Think Nike+, Runkeeper, Strava, MapMyRun, etc for skiers and snowboarders.
Last time I wrote about saying no a bunch of times to a feature until eventually saying yes, and the journey to that yes. Features building on one another, and multiple unrelated features coming together, to spark inspiration to approach a large feature-set like "social" in a new way that makes sense for Slopes.
Social in and of itself ultimately gave me the reason to say yes to another feature I've been holding off on forever.
Well, not so much the reason to say yes but more the need to say yes.
Well, less of a feature and more of a platform.
I wanted to unpack my thought process on this move, as oh boy is it a big one.
The choice to support Android was easy for me to dismiss for the longest time: I'm the only developer on Slopes and wouldn't be able to approach Android without largely halting work on the iOS app. Even after I got v1 of Android out the door, or even further down the road where I achieved feature parity, it would cut my ability to ship in half. If I were to do Android, I'd want to do it right, not just some cheap port thrown over the wall. I want to be able to take pride in an Android version of Slopes, and I want my users to love it. That's a lot of work I just couldn't support individually without crippling progress on the iOS app, where I have lots of ambitious ideas still to be acted upon.
I wasn't, however, dismissing Android for reasons others might. I'm not one to buy into the "iOS is superior and Android is junk" snub-my-nose-at-it mindset (even if I strongly prefer Apple's priorities as a company to Google's). Android development has come a long way too with the toolset, UI, and language (I'd love to try out Kotlin, and Material looks nice). As a user and developer I have a strong preference for iOS and Apple, but I don't dismiss Android out of hand.
For the longest time when a user would reach out asking about Android support I'd have to speak to that frank reality of my situation as an indie. I'd joke and ask if they had $100,000/yr laying around, because good mobile developers aren't cheap and Slopes wasn't making enough to support the cost of an additional developer yet. I had spoken with a lot of people running both Android and iOS apps, largely in the fitness space, and an all-to-common stat I heard was that Android revenue would account for 10-20% of my app's total revenue. So I knew that building an Android version would be an investment made possible by revenue on iOS, at least for the first few years. Hopefully an Android version might grow big enough to support a developer, eventually, but it would be a drain for a while.
That joke/excuse I'd use with users ran out last season (2018/19) though; I couldn't hide behind it anymore. Late 2018 I started to see the life of the excuse fading as the revenue was looking great on the iOS side, and it was confirmed dead by the end of the season.
I had to finally, truthfully, confront the idea of Slopes on Android.
The anxiety and indecision the idea of Android was causing kept building throughout the season into the spring/summer. I struggled to answer the question, because I didn't know how to even approach making that kind of decision. I like to think I'm pretty good at problem solving and breaking problems down, but I was absolutely cognitively overwhelmed by all the angles on this one.
Did I want to stay "indie"? Android meant bringing someone on, either full-time contractor or employee. If employee, did I want the responsibility for their career / livelihood? No way I'd hire an employee and not think through the responsibilities of making sure they had the right paths for growth, proper structure, etc. I've lead teams before, that wasn't an issue, but being a manager was a whole new ballpark.
Is multi-platform where I wanted my company to go? There are quite a few companies (ex: Panic) that take pride in crafting wonderful and powerful iOS / Mac applications, and that's all they do. They're Apple-focused and that's OK; there is nothing wrong with staying hyper-focused like that. This approach rang a bit true to me because I wanted to make Mac applications all the way back when I was a kid, staying with Apple through the dark years of the 90s. But was that a goal of mine?
What do I even want to do with Slopes? I could easily rest on my laurels and just ride out iOS, keeping all the revenue for myself. After all, I still have plenty of room to grow on iOS and I don't think that'll slow down anytime soon. It's already a dream "lifestyle business", the sought-after unicorn in the indie space. But revenue, beyond providing a sustainable amount to live on, has never been my goal.
Ultimately what I want is to make Slopes the best app I can make it, while also being one that can last / be sustainable. I inherited a sense of pride in my craft from my dad, and that's the itch I'm always trying to scratch; to keep making Slopes better.
This constant quest for better is what ended up making the upcoming social features answer my Android question: supporting Android would make Slopes better for iOS users, too. In fact, the lack of Android would make it worse for iOS users.
There are tons of apps out there that can live in a vacuum, ones that can focus on the individual experience and ignore any concept of a shared experience in-app. Have a favorite camera app? Great, maybe you'll recommend it to me and I'll use it, but your choice of camera app doesn't depend on me using it. Tons of apps are purely personal like this, and serve their niches well as a result.
But Slopes lives in a strongly social niche, so becoming stubborn and insisting on ignoring Android would cost me. Why? Because then many potential users would need to look elsewhere, and that has a blow-back effect on my iOS base.
In any given group of friends the odds of a mix of both Android and iOS users is very high (not to mention Europe is a big potential market for me, and Android is much larger over there than in the states). If someone on iOS loves Slopes, but their friend group ends up using one of my competitors because it supports both platforms and therefore the entire group can join in on the in-app fun, that's going to go poorly for Slopes. In the end "it is a better app!" is a hard stance for that person to stay stubborn on when faced with being able to join in on their friends' fun on the other app. Maybe said person runs both apps for a while, but eventually they will tire of that hassle.
A theoretical loss of users to this effect isn't the only thing at play. For the 2018/19 season I introduced a variant of the annual pass for families, and in just one season this pass type already accounts for 10% of my active subscriptions. Families love it! But as it stands today this pass is only appealing to families that are all running iOS devices. I'm leaving plenty of revenue on the table due to mixed-platform families that can't justify the annual pass because it would exclude some family members, usually the kids with the cheap Android devices.
All this that I'm looking at is what is commonly referred to as the network-effect, but in reverse. Normally you focus on a network effect to help grow your user base and keep people engaged in the network, but there is a negative side that you also have to look at. Sometimes you have to consider how excluding people from your network will effect those who are already a part of it.
In both of these cases (and I'm sure many I'm not thinking of ATM), the experience of my users that already love Slopes is diminished because I don't support Android.
So yeah, that's a thing now. It'll be a long road to 1.0, but work started in earnest a few weeks ago. I have no exact timeline for when or even if this thing will ship, but that's OK.
I think in an ideal world launching Android along side social would be the target. But what I felt is most important for me is being able to speak about Android by the time I launch social. I'll at least be able to triage the reverse network effect if I can give their Android friends info on a port (and a newsletter signup), and maybe even a beta signup during the season. Knowing that they'll be able to join in on the fun will help a lot.
🤞 here's hoping this whole undertaking works out and Android ships.
(Aside: this post spawned an interesting thought about the while iOS vs Android from an an accessibility standpoint (but not the accessibility you might think) that didn't belong in this post. Thread, as they say.)