With selfhosting, the problem was never really the software, but everything around it. Getting an openly reachable web address, securing it, the storage, making backups etc. There are some nimble projects to simplify some parts of this, but there are huge gaps still. Some important OSS celebs still trumpet that "users will never self-host". But if and once this vertical problem is solved, I'd expect a landfall, and we would all look back at this intermittent "cloud era" as some dead-end temporary dark age.
All of that is super straightforward in 2024. The problem before Immich came along was that software sucked in one way or another. Take Photoprism - the leading solution (imo) before Immich. Poor AI and search, poor mobile uploads, user management requires CLI. Immich absolutely nails all of those things and more. It’s a nearly 1:1 Google Photos replacement with total privacy, unlimited storage, and very similar user interface. Thanks to Docker Compose all of this can be brought up locally (to try out) in one minute flat, and exposed remotely in half an hour. Or don’t even expose it remotely, and do what I do - set up WireGuard such that it automatically connects when you’re not at home and you get access to your home network. That way you don’t need to worry about maintenance as much. An occasional update is all that’s needed since your audience is now “trusted”.
I gave up on making services openly reachable and instead just put Wireguard on my server and then connect into that and access things via their IP:port as though they were local. At some point I might set up a reverse proxy so I can give services names, but this has been fine for the past year, so motivation to change it is low.