Mighty
I've recently read about the project Mighty. Tl;dr, it's stadia for the web browser. Mighty runs Chrome on their server and streams it to your device, promising better performance and less battery use. Sounds interesting, and I'll definitely try it once it's available - but there are some things I want to talk about.
Why is this necessary?
In the early years of the internet, it was normal to render pages entirely on the server and send them to client for display. In 1995, JavaScript was invented, which allowed websites to run code in the browser and change dynamically. It gained more popularity in the early 2000s when faster implementations appeared and new features were added.
That trend has pretty much continued until today - now, you can have 3D video games, animation tools, complex spreadsheet software, all running directly in the browser. Modern web apps can run in the background even when the tab is closed, they can work offline, they can take control of the GPU for complex rendering or do calculations in background threads. All of this comes at a cost: client-side performance. Your browser needs to run all those apps, all isolated from each other in their own process. That can use a lot of resources.
The makers of Mighty realized that for many users, it might be cheaper to constantly stream video and audio from a remote server instead of running their web apps locally. In a way, that's going back to the old days, when all the work happened on the server. Except now, it's one server hosting the website, and another one doing the rendering.
Is it really necessary though? Personally, I have > 200 tabs open most of the time, and without any issues. Unused tabs are hibernated automatically (a feature available in Chrome and Firefox), and yes, it uses a bit of memory, but not enough to make the system unresponsive.
But that's just talking for myself. I'm confident that the Mighty founders have done their market research before launching, so, presumably, there is a demand for better browser performance. But I'm wondering if this is the best way to achieve it.
End-to-Middle
HTTPS was formally specified in 2000, and now, 21 years later, 84% of webpages are loaded securely according to Let's Encrypt. That's far from perfect, but it's a big achievement. It means that no middleman can read your internet traffic. Neither the creepy guy with a Kali Linux laptop sitting next to you in the coffeshop, nor the creepy guys at your ISP, nor, as far as we know, the creepy guys at the NSA.
I don't know if there are any creepy guys at Mighty, but if there are, that doesn't apply to them. Because Mighty hosts the web browser on its server, it becomes the endpoint for encryption. That means, if they wanted to, they could
- Read all your traffic (yes, even passwords)
- Change the content of websites you visit
- Inject their own ads
- Slow down or block certain sites
Of course, their website makes it very clear that they don't intend to do any of that. And yes, maybe they aren't doing it right now. The problem is, they could start at any time, and you wouldn't know. It's your decision whether you trust them.
No service, no work
Another problem with the Mighty approach is that, by design, it doesn't work offline. As mentioned earlier, modern web apps can have offline support, and many already do (although there's plenty of room for improvement. But that's a story for another post.)
With Mighty, even scrolling through an already-downloaded article becomes impossible without a good connection. That might not be a problem if you live in large city in a developed country, and you can afford a good mobile internet plan. But if any one of those factors doesn't apply, you're out of luck.
That's a problem, because it creates a divide between those who have it all - a fast connection, a good computer and/or a hosted web browser - and those who don't. And over time, some apps might become unusable if you're on the wrong side of that divide.
I think it's important that we, as web developers, keep working to make our websites fast, and add offline support where it makes sense. Even if Mighty, or a similar solution, takes off, we shouldn't rely on it. We shouldn't rely on our users having a fast computer, or a constant internet connection. We should build websites that work for everyone. That's what the web is all about.
A bit of crystal ball gazing
Despite all this rambling, I don't know how Mighty will work out. I don't know what the future of the web will actually be like. But if I were to make a prediction, it would be that services like Mighty will find the most adoption in corporate environments. If you're in the office, you can rely on having a good connection. You're (probably) not looking up personal info on your work device, so personal privacy would be less of a concern. Companies that handle sensitive data might host their own version of Mighty in-house. Using a hosted browser for work might just become normal, like using a VPN is normal right now.
I could be wrong. Despite all the pessimism in this article, I've signed up for Mighty (I don't know when it'll be available where I live). It's a project with a lot of potential. If there was an open source version, I would be much more inclined to use it.
If you want to try as well, you can request access on their website.