Nobody's Job to Build the Glue
Every self-hosted setup I've seen eventually turns into a folder of bookmarks, one tab per app, each with its own password and its own idea of who you are. You did the hard part. You got the box running, the containers up, the certificate renewing itself on schedule. And you still end up copying an address out of one app to paste into another, because nothing on your own machine talks to anything else on your own machine.
That's the actual gap, and it isn't skill. The tutorials cover reverse proxies and volume mounts and getting Let's Encrypt to behave. Nobody walks you through why your photo app has no idea your calendar exists, because the honest answer is that nobody built the thing that would let it know.
That layer, shared login, one app asking another for a scoped look at its data, is a public good. Whoever writes it pays the full engineering cost, and once it exists every other app on the machine gets to use it free, including apps whose maintainers never spent a minute on it. There's no way to charge for a login screen, and a login screen is worthless by itself. Its whole value shows up only once a pile of unrelated projects agree to speak it too, which none of them has a reason to be first to do.
Open source has a normal answer to coordination costs like this: pick a maintainer, pool a budget, stand up a working group, wait. That's roughly how OAuth turned into boring plumbing everyone assumes is just there. But OAuth solved "let this app act as me on some other service." It never touched "let this app read what that app already knows about me, because they happen to share a disk." That problem is smaller, less visible, and comes with no adoption numbers to put in a grant proposal, so it never got the working group.
On a phone, the equivalent problem got solved, but not by consensus. Apple and Google own every app that matters on the device and every account behind it, so building shared auth and permissioned data pays for itself in retention. Leave the ecosystem and you rebuild every one of those quiet permissions from zero, a cost that only the platform owner benefits from charging you on the way out. That isn't a coordination failure at all. It's a company internalizing a cost that would otherwise be split across nobody. The maintainer who adds single sign-on to their wiki ships a wiki that behaves exactly the same to the person using it. Apple, who builds the same thing once and requires it of anyone who wants the badge, ships a lock-in mechanism wearing a convenience feature's clothes.
That's the actual difference between a self-hosted stack and a platform. A self-hosted stack is a pile of apps that happen to share a filesystem. A platform is a pile of apps that share a session. The gap between them is entirely the coordination layer, and coordination layers are exactly the infrastructure a market underbuilds whenever no single party gets to keep the return.
Interoperability rules, the kind that force big platforms to open up messaging or account portability, are attempts to make a company hand over the glue it already built for itself, on the theory that if nobody profits from supplying a public good, someone has to be compelled to anyway. That's a reasonable answer to the problem, but it only works on companies that already have a stack worth prying open. It does nothing for a wiki and a photo app that have never met and have no regulator standing over both of them telling them to agree on a session format.
Self-hosting doesn't stay a niche because the people running it lack the chops to do what Apple does. It stays there because what Apple does only pencils out if you own everything downstream of the login screen, and nobody running six unrelated open source projects on a box in their closet owns anything downstream of anything.
The apps were never the missing piece. The company is.