The Persistent Gravity of Cross Platform - Allen Pike
Allen Pike
Articles
About
Follow
The Persistent Gravity of Cross Platform
Coordinating a large product org is hard.
September 1, 2021 •<br>8 min read
Update, July 2026: Added a postscript about how the rise of agentic coding has made these dynamics even stronger, on the heels of the ChatGPT app going Electron.
AgileBits recently caused a stir with their announcement that they’ve rewritten 1Password 8 as a cross-platform Electron app, replacing their well-loved native Mac app. The takes came hot and fast. Like many developers, I love and appreciate a well-crafted native UI, and I was once skeptical of the trend towards cross-platform app UIs.
The discourse around cross-platform app technologies has traditionally revolved around a simple idea: “cross-platform development is cheaper, while native development leads to better apps.”
And this is kinda true. Like, it’s true enough for a hand-wavy explanation of why cross-platform tools are popular.
But this mental model is so oversimplified that it obscures why the latest large, profitable company has gone down this path. Each time a cross-platform app has found itself in the crosshairs of the internet, I hear a variant of this question: “What is it about enterprise companies that leads so many of them to abandon native apps, when they could surely afford to develop one app for each platform? ”
Well excellent question, synthetic rhetorical person!
In practice, the tradeoff is about much more than “cheap vs. good”. Unintuitively, sometimes native tech can actually be the cheapest way to achieve a certain goal – and sometimes cross-platform technologies actually lead to better products, even for very well-funded companies.
So what is a useful way to think about the tradeoff?
Over the last decade I’ve talked to people at hundreds of companies about how they’re developing and supporting apps, helping teams evaluate, plan, and execute native and cross-platform app work. While there are a lot of factors that go into this technology decision, there’s one that is consistently underestimated.
The Primary Tradeoff
At the highest level, cross-platform UI technologies prioritize coordinated featurefulness over polished simplicity.
Imagine the steel-man case for cross-platform UI: a complex enterprise app used by only a few thousand internal employees. They’re required to use the thing for work, and they need to be trained on it, but does it need to delight them? It does not. “Delight” is near the bottom of the priority list, between “cool soundtrack” and “joystick support”. The features just need to work, consistently – and cost-effectively – across platforms.
Given that, enterprisey companies love cross-platform tools. Enterprise buyers love feature checklists, and so “questionable UX” and “enterprise software” are strongly correlated. A classic criticism of cross-platform tools is that they often get you to 75% quality quickly, but the remaining 25% gets increasingly difficult. But if 75% quality is as far as you need to go, then I guess you’ve successfully fulfilled your fixed-bid contract.
Naturally then, internal enterprise apps converged long ago on cross-platform UIs – mostly web-based, mostly terrible. It’s a match made in heaven.
Where things get interesting is when you look at customer-facing software. Products where the experience is a big contributor to success or failure. Where the higher “UX ceiling” of platform-specific UI code can help retain paying users.
It seems, conceptually, that a big company willing to spend big money to build really nice native Mac and Windows apps would be in a position to outcompete the Electron-based Slacks, Figmas, and Spotifys of the world. Right? So why isn’t that happening?
The Quadratic Cost of Coordination
On a small product team, keeping a couple native apps consistent with one another isn’t hard.
Steamclock has built and iterated dozens of nice native apps with teams of 3 to 6 people – and kept iOS and Android products in sync with one another and their siblings on the web with little difficulty. At this scale, the UX and simplicity wins of native tooling can be a huge win.
However, consistency starts to become a problem as your product and organization grow. When you’re rapidly hiring, rapidly adding client features, and including support for a third, fourth, and fifth platform, things start to get dicey. 1Password’s Michael Fey touched on this in his excellent post about the development of 1Password 8:
Inconsistencies both small and large had crept into our apps over time. From small things like password strength being different between platforms to larger things like differences in search results and entire missing features.
This matters because as the number of feature, design, and bug variations between your platforms grows, coordinating clear conversations about your product gets harder.
When is this feature rolling out on Mac?
Is this...