Flatpak is a missed opportunity

This should have been a short response but it ended up being a long one, sorry. I hope all of you find these thoughts insightful even tho they probably won’t change anything. But at least you’ll have a better idea of “what’s up”. I remain hopeful that Snap project will remedy its shortcomings and will actually become a new format that can be trusted (or that doesn’t need to be trusted because it’s open so it can be audited, contributed to, checked, forked etc).

Let’s take this apart with a little benefit of hindsight we have today:

  • “users can easily discover new applications”:
    This claim has been proven untrue, users are desperately installing Flatpak because not a single Gnome app developer publishes anything on Snap store. I presume it’s largely because of the closed source core and nature of it.

  • “developers can easily publish their apps”:
    This claim is again proven to be untrue. Developers can publish their apps for Ubuntu but for any other distro Snapd is not natively shipped. Everyone else is shipping Flatpak so I need to support Flatpak to reach my users.

  • and developing Snap itself is easier:
    Yes because the backend is not being tested in different situations and issues are not being found so we can all pretend they don’t exist and have an easier time collecting our checks.
    So what if it’s easier? The adoption is suffering a lot because of that.

Canonical, the company behind Snap and Ubuntu, already tried the distributed approach and discovered its downsides. Before Snap, “Personal Package Archives” (PPAs) were the recommended way to get third-party software to Ubuntu users. The idea of these is that each developer creates a tiny repository which includes their app. Users get new software by adding the PPA and installing the software using their package manager. This is very similar to how Flatpak supports multiple “stores”.

What downsides did it discover? Even if there are any (and ofc there are) if paid off greatly for Ubuntu and Canonical. PPAs are used today, it made Ubuntu foss compliant and very attractive distribution and hence It was once a clear linux distro leader.

On Android and iOS, users often find new software by opening the app store and searching for what they need. This is not possible with PPAs because the software in a PPA only shows up in the Ubuntu app store after a user adds it. Snap solves this by having a single repository with all available apps. Users discover new software straight from the app store instead of having to search the internet.

Firstly. How is Snap being proprietary and centralised helping that? Users still have to install debs, Flatpak and everything else to get their software. So the claim that it’s all searchable from one source is nonsense. Not a single new gnome app is available on Snap store and if there is, it’s never on launch, it’s always months if not years late. Proprietary backend and centralisation is hurting the snap adoption.

Secondly, PlayStore and AppStore store should not be taken as an example. That’s what everyone is afraid of that Canonical might turn their centralised store into. It’s not an open platform. The only person who might take them as an ideal is the one who never published anything on any of their stores.
Google Play store is so tightly restricted and you have to comply with all kinds of nonsensical rules in order for them to reduce any legal risk as much as possible. By making Snap store centralised Canonical is making themself a bigger target legally and will inevitably have to restrict us as to what kind of apps we can publish. So say goodbye to your torrent apps, youtube downloaders, ad-blockers etc. We, who deal with stores every day can see that coming from a mile away and years ahead. Hence why there are other third party stores that would be even more popular if Google hasn’t tied most of the apps to their proprietary services. In any case, you end up searching the Internet for your apps. Mind you, Linux user base is highly technical, they won’t be satisfied with an app store full of consumer apps etc. Linux user base clearly uses Linux for reasons other than using WhatsApp (which you’ll never have in your store anyway so who are you catering to?).

Taking AppStore as an inspiration? When was the last time you’ve installed a third party app on your Mac from their AppStore? Never, nobody publishes there, it’s extremely restricted and takes a huge cut. So you again end up searching the Internet for your apps.

iOS store. Do you really want to go sooo far outside of FOSS ethos that companies are taking you to court and entire countries and federations like the EU are forced to come up with new regulations to make you stop your monopolistic practices? I wouldn’t follow their steps if I was a product manager.

Many developers also find creating and maintaining a repository too cumbersome. Canonical tried to make this as easy as possible for PPAs with Launchpad taking care of building and hosting the apps. Nevertheless, the process is inherently more complicated than uploading your app to a store. Although PPAs are still used by many developers, even more software is only available to download from a website.

Great, where’s the issue? I can’t see it, you have your repo, some devs have theirs and everyone’s happy. Why can’t that be with the snaps too? Why do users have to install Flatpak and then a whole other GUI store and then connect all of that, include Flathub repo etc.

Who is your target audience? It seems to me that Linux users aren’t. They are literally showing you what they want. I’d listen to them instead of trying to convince them that what they actually want is something completely different that locks them in and hurts their freedoms. That’s what Apple, Google etc are doing. And that’s precisely why your user base is using Linux and not Windows or macOS.
I cannot understand the reasoning behind some of your decisions. Like… Snaps are great, but FOSSify them and let’s move on. Make the user base feel confident and safe keep doing an awesome job. What’s so hard about that? You have engineers and more funding than ever before to do it and it would pay off 1000%.

These issues are not unknown to the Flatpak project, which is why Flathub was created: having a single store which contains all apps benefits everyone.

Exactly, they’ve created Flathub to achieve what you have with Snap Store but it’s a completely different way to go about it and that’s why Flathub is crushing it and Snap Store is not even tho Snaps might be objectively better! It just needs to be open and distributed. Wether anyone actually creates their own repo is besides the point but it will certainly drive the adoption of the main store. That’s how they think about Flathub and it works and it’s freedom respecting.

Given the downsides of the distributed approach, Canonical decided to invest engineering resources in other parts of Snap instead. Creating a distributed system is a multiplier to complexity; each feature becomes harder to implement. That said, the Snap developers made it clear in the past that if anyone is interested in implementing this feature in Snap, they can definitely do so.

That argument is the same one as when developers say to >users< “Feel free to submit patches :)”. It’s tone deaf and disrespectful. We all know it’s too big of a task for any person to take on and they’d have to maintain a for of snapd and you can change the api at any time and it would be an endless cat and mouse game.


For all these reasons even the official Ubuntu flavours were shipping Flatpak…

Snap store is filled with low quality and abandoned apps and most of them are completely non native to gnome (remember the DE that Ubuntu uses?). And while Gnome itself is going trough the renaissance with the release of GTK4, gtk-rs, relm etc. New high quality Gnome (gtk4) apps are being developed every day and Ubuntu gets none of that love.
Like Ubuntu users literally get none of the good stuff happening in the gnome app development sphere. Nothing gets down to Ubuntu except the core apps that Canonical maintains and those are often years behind.

System76 is now doing their thing with Rust and Iced too. I never heard anyone even considering supporting snaps. Just Flatpak.

Elementary was once considering shipping Snaps but eventually went with Flatpak in order to have their own repository.

And they all know Snap is objectively a better format. So what’s the problem here? Could it be that Snaps are doing completely the wrong thing in the backend, it’s proprietary and centralised?

It’s not that the technology is bad, Snaps will fail for the simple reason that they don’t conform to the Unix ideology and FOSS ethos.
You are trying to attract users who are actively making their own lives “harder” by using Linux desktop instead of Windows or macOS in the first place, often purely based on the ideological reasons and you’re trying to offer them a proprietary solution.

I would compare that to opening a bible shop in front of a mosque in Saudi Arabia and trying to sell them a holy book. And being like… “So what dude… Quran, Bible… It was easier for us to print the Bible and a holy book is a holy book anyways, right?” Guess how many sales would they have? I don’t just think they would have no sales but people would actively rebel against that shop, maybe even started burning bibles etc (hypothetically speaking!!).

That’s what’s happening to Snaps in a way. They don’t really bother anyone right? You can use them or not to use them. But people go out of their way to actively remove them from their systems. Not because they are badly engineered but because they don’t conform to the FOSS ideology and that’s unfortunately or fortunately more powerful than plain engineering. That’s what Canonical forgot in their restructuring. Go with the FOSS flow or drown trying to swim against it.

Just something to think about. If I was a product manager there, I’d start working on repairing that image and fossify the stack. It’s not too late, snaps really are great otherwise.

5 Likes