Table of Contents
This post is the final, definitive graveyard of everything I’ve ever written about Nextcloud, from my innocent first install to the glorious morning I purged that digital parasite from my home infra for good.
Despite its monumental crimes against humanity, Nextcloud did nudge me into self-hosting. That said, I’ve since ripped out every single piece of that thing and replaced it with stuff that just works. You’ll find the complete list down below.
First contact (2018)
I briefly tried Nextcloud around 2018, and I was disappointed with how it handled file sync (it’s main job, by the way). It kept getting stuck and had terrible performance. I never seriously used it for file sync again, but Nextcloud does a bit more than that.
It came with a suite of official and semi-official one-click apps, and I was drawn to Contacts, Calendar, and a webfeed reader. That’s exactly what I needed for a long time: a reliable, self-hosted alternative to Google services that could keep my Debian laptop and LineageOS smartphone in sync.
Nextcloud Hub (2020)
Nextcloud Hub was the 18th release of the platform. It came with a lot of polishing and a few new features and apps. The announcement made by Frank Karlitschek is worth watching: he talks about the motivation behind Nextcloud, the need to counteract the negative trends of centralization, ways to achieve digital sovereignty, and the importance of being in control of our own digital belongings.
The Nextcloud Flow app was the darling of that particular release and it looked promising. Another interesting app was Nextcloud Deck, which I had started using a few weeks earlier. The web front-end was pretty great. I also tried its Android counterpart, but it wasn’t really usable.
SQLite Ambiguity
I started out running Nextcloud on PostgreSQL and I’ve got nothing against Postgres. It’s a fine piece of software, but for a single-server setup serving maybe three people tops, it felt like bringing a tactical nuke to a water balloon fight.
The Nextcloud documentation stated that it didn’t care much about your choice of database, and you were free to use SQLite. The problem is: the documentation also advised against using SQLite for anything but minimal deployments, with “minimal” being undefined. Does that mean only core apps are supported, or does it point to scaling issues? Even Nextcloud maintainers weren’t able to answer those questions.
Nextcloud News
It’s easy to extend Nextcloud by installing additional apps from its official app store. One of my favorite Nextcloud apps was News, and it allowed me to keep an auto-updating list of RSS feeds on my Nextcloud server which I could always access from an official Android app.
Having a single place to store all of my news and podcasts alongside their state (new/seen, starred/unstarred) allowed me to read my news feed from any platform. Another benefit of having a server for my RSS feeds was that the changes I make via any of my client apps got propagated to all the other apps automatically.
I gave the official Nextcloud News app a few months. It was a complete disaster, so I did what any reasonable person would do, I built my own Android client in 2022. I knew full well it wouldn’t be quick, but RSS is part of my morning ritual, and I decided it was worth the grind. I shipped it sooner than expected, and it’s been my go-to RSS reader on Android ever since, though the backend is no longer Nextcloud but Miniflux.
Running Nextcloud for a Few Years
I stuck with Nextcloud, and some things got better over time. It handled my files, contacts, photos, news, and podcasts all in one place. It even had passable project management tools, which I used to collaborate with others on various projects.
Nextcloud had great potential and virtually no competition. It was the simplest way to ditch Big Tech in one go.
Why I Stopped Using Nextcloud
Unfortunately, the honeymoon didn’t last. Nextcloud kept getting bigger, slower, and harder to keep alive, and the maintenance cost kept climbing with every release.
Bugs
If you’re planning to run Nextcloud, brace yourself for:
- sync conflicts
- terrible performance
- broken image thumbnails
- calendar events that randomly vanish
- contacts that disappear or duplicate for no apparent reason
- popular community apps being unstable or abandoned because NC is too greedy to help the volunteers improving their own ecosystem
Most of these were well-known and discussed in the forums for years, and never got properly fixed. I adapted and worked around them, which is precisely the kind of software fatigue I wanted to escape.
Huge Maintenance Cost
Upgrades were a recurring source of anxiety. Every new release came with a long list of footguns. Container images helped, but they also made debugging a nightmare when something went wrong.
File Sync via PHP Script is Retarded
Nextcloud’s headline feature is keeping files in sync across devices. It does it by orchestrating a small army of PHP scripts that scan folders, calculate differences, talk to the database, and sync everything with a desktop client.
It works, kind of. But it’s a ridiculously complex process with multiple moving parts that tend to get out of sync, so it tends to break without warning. The more I learned about how it actually works under the hood, the harder it was to justify running it.
Alternatives
In the end, every part of it was replaceable, and most replacements were simpler and cheaper to run:
Calendar & Contacts
There aren’t really any server-based alternatives. This is the one use case where a minimal Nextcloud container makes sense.
I’ve since switched to local desktop apps for all my scheduling needs. No network sync, but I can live with that.
Web feeds
I ditched the Nextcloud backend and switched to Miniflux. It’s a single binary, dead simple to set up, and I haven’t had to touch it since I deployed it years ago. My Android client supports it out of the box, and so does practically every other RSS app, so the move was completely painless.
Files
I replaced the whole sync machinery with plain rsync between machines. It’s ridiculously fast, and I haven’t had a single sync issue since.
Conclusion
Once every workload was migrated away, Nextcloud had nothing left to do. So I shut it down, and I haven’t missed it for a second.