The Open Web, Fuck Yeah!

Some douchebag wrote a thought-leadering rant about the pain of using the open web vs native apps – this is my rebuttal.

The problem with that rant isn’t that it’s false.

The pain is real and the challenges of building amazing web experiences that can compete with native apps are something every company should take into account. That post never claimed it wasn’t possible to build great web experiences, just that the cost was higher and required more developers of higher skill which of course, translates to higher cost and higher risk. All the great innovation in the framework space like React Native solve the overall front end architecture problem, but not the bits and pieces of the actual experience where shit meets fan.

The problem with that rant is that it’s incomplete, and largely misses the point.

With a few – very fucking few exceptions – mobile apps perform really poorly when it comes to installs. I’m too lazy to link to all the research out there – just fucking google it yourself. There are over 2 million apps in the Apple and Android app stores, EACH. That would be like every person in New Mexico had their own app and they were all trying to get you to try it. The babies, the grownups, Jimmy McGill, and even the 73,530 people who voted for Trump. EVERYONE in New Mexico with their own app fighting for attention.

Even if you get someone to install your app, research shows that over 90% stops using it within 90 days. Retention is shit. My 12 year olds have over 100 apps on their phones and tablets. They actively use about 3. The rest just sits there wasting my family data plan when they insist on updating all those fucking useless apps. So much for taking cues from 12 year olds on how to run your business.

The area where native apps fail hard is viral distribution. Yeah, Twitter and Facebook have nice UX for showing off your app but those are not links you can easily copy and paste across platforms, in comments, emails, and text messages. Installing those apps can be annoying and time consuming, compared to opening a link in an embedded or external browser. There is no instant satisfaction or immediate follow through. Go through your phone and count how many apps you installed but never actually tried out yet because by the time it was ready, you had to get off the phone to pick up the dogs’ shit (or whatever shit your life is blessed with).

But the biggest area of weakness for native apps is in attracting short term engagement. Yeah yeah, we all worship long term engagement and user acquisition but with the exception of a few major success stories, most of us look for the occasional hit. A news article, a viral video, or an entertaining but otherwise useless rant hitting #1 on hacker news. You collect enough of those, and you can be successful without having acquired permanent users for a while, until you can afford those. You know, how most non-social media works. The media not produced by fucking teenagers.

I don’t care about the future of mankind, the liberation of information, the democratization of technology – the typical guilt-based marketing shit used by open web evangelists. I care about reaching an audience, and making it as easy and lightweight as possible. I want my customers to show up when they want to, and to make their very first visit something they don’t have to think about because it involved opening an app store, reading about the app, making sure it’s safe, clicking to download it, entering a password or their fingerprint, waiting for it to download, finding where the stupid phone decided to place the icon (what’s up with that? Is it a game?), opening the app, learning what is often a new UX because some 20 year old decided conventions are for suckers, creating an account, logging in – then – if you are still interesting, learning how to use a completely new application. By the time you are done, you can’t even remember how the fuck you got here in the first place (or what this sentence was about when it started).

Everything comes with a price and building native apps provide a much better control over the software development cost and risk. But like everything else in life, it’s a tradeoff and this one is probably not the one you want to make. The one where you are trading off instant engagement and faster time-to-first-meaningful-action for a Gantt chart.

Is your new thing so fucking amazing that people are going to install your app and give it a chance? Statistically speaking, unless you are best friend with a famous celebrity or Apple decides to feature your app in one of their top categories or search results, you are pretty much fucked. Again, over 2 million apps – and the joke is, Apple is proud of this milestone. It was the first number they bragged about at their recent event. Remember New Mexico? NEW FUCKING MEXICO of apps.

Building anything online for profit (or where user acquisition is important) requires taking into account a lot of factors. Portraying native apps as some kind of magical technical solution, even a temporary one, to the pains and shortcomings of web development is stupid. Some applications will do better as native apps. Some won’t. If you are producing experiences where the core value is information – news, images, videos, etc. you best chance of reaching the widest audience is still the web.

Sending someone a link is still the best distribution method online. If your content is stuck behind an app, it ought to be fucking incredible for people to go through the hoops required to get into it. Now, is it really that fucking incredible? Are you sure? Oh, and they need to see enough before they install the app to be convinced that’s true. Which means, you are probably going to need to provide some web access to your content.

Oh shit – that means you still have to hire a few of those web developers and deal with the pain. It’s never really app vs native. It’s a complicated tradeoff between multiple factors and no matter how much you read about it, how many statistics you collect, how many experts you talk to, you will still have to figure it out on your own, based on the specific properties of the experience you are building. And keep evaluating your decisions.

The web is the present and it’s a fucking mess. Deal with it.