This is a reference phone running Firefox OS. Or at least the parts of it that still work after Mozilla officially ended support for it. And this is probably our best glimpse at a long standing dream many technologists and software developers have had for years. A smartphone operating system powered by the web and not by mobile apps. And even as the Firefox OS project kind of faded away, that dream never died completely. So in this post, let’s take a look at why Firefox OS failed, and if it could be revived again in the future.
Our story begins in 2013, just two years after Google launched Chrome OS, a browser-based operating system for PCs that proved that there was a small, but real market for an operating system that only ran websites instead of apps. And just 2 years after its launch, Mozilla, the maker of the other popular browser on the market, launched Firefox OS to replicate this model, but on phones. Just like Chrome OS, Firefox OS would essentially run a web browser as its operating system, which would then run slightly customized websites in place of apps. But with one key difference. Mozilla would make these websites behave a lot like native phone apps, because mobile websites, especially 6 years ago, weren’t exactly great. While websites like YouTube, Gmail, and Facebook were popular on PCs,
Hence why Chrome OS could find even moderate success, most people preferred using apps for these services on their phones. Phones had weaker processors, so Mozilla spent a lot of time making websites on Firefox OS perform well, they had slow, unreliable mobile internet, so Mozilla built a framework to let web apps work offline, phones had smaller screens and virtual keyboards, which made URL bars an inconvenient form of navigation, so Mozilla hid the URL bar and built a home screen with app icons as well as an app store. Plus websites couldn’t take advantage of most of the things people did like their phones for, like their built-in cameras, GPS, Bluetooth and so on. So Mozilla worked hard to give mobile websites on Firefox OS most of those capabilities too through something called APIs. Now we take these for granted, but websites being able to send you push notifications or accessing your camera without some hacky plugin, well, those things were pretty revolutionary back in the days, and the feeling was that if Mozilla just kept perfecting those, people could just start using the web instead of apps on their phone too. The company put some of their best engineers on the project, they invited their community to participate, they recruited 4 major hardware partners to launch 20 devices in 30 different countries, they got accepted by a few major carriers, they started advertising, … aaand then Firefox OS never really took off.
After a somewhat successful first year, sales became disappointing and in 2016 after multiple changes in management, the project was officially cancelled. And for a long time I couldn’t figure out why. Why did Chrome OS work out when Firefox OS didn’t? So, I searched the internet for people’s opinions who were close to the project and here are the most common answers I’ve found:
- They focused on ultra cheap devices which meant subpar experiences.
- They let carriers and hardware partners dictate too many of the product development decisions, so they were just completing feature requests of others instead of building their own product with a real vision.
- They had to release updates to the OS through these carrier partners who were extremely slow, so important new features often never reached users.
- They focused too much on recreating Android feature by feature instead of building their own thing.
- They had limited resources. Mozilla is a relatively small company and suddenly had to split resources between a browser and a phone platform.
- Seeing the lack of adoption, key people started leaving the project and taking many people with them, so Mozilla even ended up with a shortage of developers, and
- of course, there was Google who fought back.
Amongst other things, they launched the Android One platform for developed markets targeting the same consumers, the same manufacturers and the same price points as Firefox OS, which might have been the final push. And look, I get it. These are all real problems, and making a consistent operating system out of the mess that was the mobile web 6 years ago well, that’s a hugely difficult task. Much more difficult than it was to make Chrome OS, which was built on the desktop web, which was already in a much better shape.
But the more I read about these things, the more I realized that there was something more fundamentally wrong with the approach. And it really hit me when I read the vision statement of Firefox OS. “to disrupt the app ecosystem with the power of the open web”. That was the whole idea behind this project. And, you know what this is? It’s engineering jargon. What it isn’t, is a solution to a problem users actually have.
The web might be a better platform for developers who would be freed from having to make a new app for every platform, but Mozilla never shared any plans for how it would make the experience for users better. Or at least not worse than on existing platforms. Look, I love Mozilla. I use Firefox as my main browser, I think it has gotten really good lately, I donate money to them every year, I love that they are idealists who are fighting for the open web, but this is a typical problem that idealists organizations and “engineering first” companies very often have.
They first decide on a technology and then try to create a market for it, instead of first finding a problem that users have and then choosing the right technology to solve that problem. You see, this is the wrong way around. When Google launched Chrome OS, they saw a real problem users had. Many of them already wanted to use websites instead of apps on their computers and didn’t want to manage a complex desktop OS like Windows or Mac just to send emails and watch funny cat videos. So Google built a product that let them do just that.
But Mozilla decided on the technology first and then tried to find a use-case for it. Did users really want to use the mobile web on their smartphones in 2013? Or were they actually quite happy about using apps? I think it’s the second. This is why phones are so successful and so addictive, and this is also why Mozilla eventually essentially ended up re-creating something that looked a whole lot like Android.
Mozilla’s core marketing message to users was that their platform was “open”. But as Ben Francis, a Mozilla engineer who worked on the project said they soon realized that this didn’t sell. And yeah, of course it doesn’t. It matters to me and Ben and maybe another million people, but most people, especially those who are on a really tight budget and they can’t afford to buy a new phone if this one doesn’t work out, all that matters is that the phone is reliable and works well. The openness of a platform just wasn’t a huge concern for most users, so without any other core differentiating features, of course Firefox OS failed. It didn’t solve any real user problems.
Now, I am an idealist, I do want the web to win and I actually went into this post originally because I found two relatively new projects, both of which were built on the web. So I was wondering that maybe 6 years after the release of Firefox OS, maybe the mobile web has improved enough where it becomes feasible to launch a web-based OS again.
So the two projects I came across are KaiOS and Blloc. They are both unique. Kai OS is a feature phone operating system built on top of the open source remains of Firefox OS, so the UI and all of its apps are built using web technologies and it is actually quite a success story with tens of millions of devices online, support for Google Assistant, YouTube, Twitter and so on, and rapid growth in developing markets. The Blloc Phone is actually an Android phone, but it runs a custom software layer on top of it which is built entirely with web technologies.
Blloc still lets you access standard Android apps for now, but they really try to make you use their own custom interfaces instead, where you just chat with people using their communications hub that pulls together chats from all your chat apps, SMS and calls, and on top of that you can access information by typing it into this command-line style interface. And the company tells me that their end goal in a few years is to just completely cut out Android and only run this web-based interface when it becomes robust enough.
This is pretty experimental, and there is no guarantee that the company will actually become a hit like Kai OS has already become, but both of these companies got the one thing right that Firefox OS didn’t. They first saw a real problem that real users had and then they tried to create a solution for it. So Kai OS saw for example that in low-income countries obviously want to get online, but they prefer the reliability and the tactility of a feature phone over that of a really bad, really cheap smartphone. And Blloc saw that people hate how much they are addicted to their smartphones, so they created a user interface that minimizes distractions. In both cases, the web was a tool and not the end goal. And with this approach, I totally believe that future projects could built on top of web technologies.
The mobile web has improved significantly since 2013. Progressive Web Apps, which were built in large part on top of Mozilla’s work with Firefox OS can do most things native Android apps can do now, like sending you push notifications and working offline. Web Assembly gives important web processes really good, near-native performance. Web GL and Web VR 3D and virtual reality applications to the web and of course performance and mobile internet on phones have become much better as well.
In other words the mobile web is no longer terrible. So if you have a good idea for a new operating system, take a good, long look at it. You might benefit from the fact that you don’t have to recreate a whole app platform, you can just use what’s already available on the web. Just try not to recreate Android again.