Top
Best
New

Posted by rpgbr 11/3/2025

Why Nextcloud feels slow to use(ounapuu.ee)
457 points | 350 commentspage 3
jw_cook 11/3/2025|
The article mentions Vikunja as an alternative to Nextcloud Tasks, and I can give it a solid recommendation as well. I wanted a self-hosted task management app with some lightweight features for organizing tasks into projects, ideally with a kanban view, but without a full-blown PM feature set. I tried just about every task management app out there, and Vikunja was the only one that ticked all the boxes for me.

Some specific things I like about it:

  * Basic todo app features are compatible with CalDAV clients like tasks.org
  * Several ways of organizing tasks: subtasks, tags, projects, subprojects, and custom filters
  * list, table, and kanban views
  * A reasonably clean and performant frontend that isn't cluttered with stuff I don't need (i.e., not Jira)
And some other things that weren't hard requirements, but have been useful for me:

  * A REST API, which I use to export task summaries and comments to markdown files (to make them searchable along with my other plaintext notes)
  * A 3rd party CLI tool: https://gitlab.com/ce72/vja
  * OIDC integration (currently using it with Keycloak)
  * Easily deployable with docker compose
mxuribe 11/3/2025|
I know this post is more about nextcloud...but can i just say this one feature from Vikunja "...export task summaries and comments..." sounds great!!! One of the features i seek out when i look for a task, project management software is the ability to easily and comprehensivelt provide for nice exports, and that said exports *include comments*!!

Either apps lack such an export, or its very minimal, or it includes lots of things, except comments...Sometimes an app might have a REST api, and I'd need to build something non-trivial to start pulling out the comments, etc. I feel like its silly in this day and age.

My desire for comments to be included in exports is for local search...but also because i use comments for sort of thinking aloud, sort of like an inline task journaling...and when comments are lacking, it sucks!

In fact, when i hear folks suggest to simply stop using such apps and merely embrace the text file todo approach, they cite their having full access to comments as a feature...and, i can't dispute their claim! But barely any non-text-based apps highlight the inclusion of comments. So, i have to ask: is it just me (who doesn't use a text-based todo workflow), and then all other folks who *do use* a text-based tdo flow, who actually care about access to comments!?!

<rant over>

jw_cook 11/3/2025||
Yeah, I hear you. I almost started using a purely text-based todo workflow for those same reasons, but it was hard to give up some web UI features, like easily switching between list and kanban-style views.

My use case looks roughly like this: for a given project (as in hobby/DIY/learning, not professional work), I typically have general planning/reference notes in a markdown file synced across my devices via Nextcloud. Separately, for some individual tasks I might have comments about the initial problem, stuff I researched along the way, and the solution I ended up with. Or just thinking out loud, like you mentioned. Sometimes I'll take the effort to edit that info into my main project doc, but for the way I think, it's sometimes more convenient for me to have that kind of info associated with a specific task. When referring to it later, though, it's really handy to be able to use ripgrep (or other search tools) to search everything at once.

To clarify, though, Vikunja doesn't have a built-in feature that exports all task info including comments, just a REST API. It did take a little work to pull all that info together using multiple endpoints (in this case: projects, tasks, views, comments, labels). Here's a small tool I made for that, although it's fairly specific to my own workflow: https://github.com/JWCook/scripts/tree/main/vikunja-export

mxuribe 11/3/2025||
> Yeah, I hear you. I almost started using a purely text-based todo workflow for those same reasons, but it was hard to give up some web UI features, like easily switching between list and kanban-style views.

Yeah, i like me some kanban! Which is one reason i've resisted the text-based workflow...so far. ;-)

> ...Vikunja doesn't have a built-in feature that exports all task info including comments, just a REST API. It did take a little work...

Aww, man, then i guess i misread. I thought it was sort of easier than that. Well, i guess that's not all bad. Its possible, but simply requires a little elbow grease. I used to use Trello which does include comments in their JSON export, but i had my own little python app to copy out and filter only the key things i wanted - like comments - and reformated to other text formats like CSV, etc. But, Trello is not open source, so its not an option for me anymore. Well, thanks for sharing (and for making!) your vikunja export tool! :-)

janikvonrotz 11/4/2025||
Most people here seem to have experienced a Nextcloud version from 3 years ago.

In version 31 the frontend has been rewritten in Vue and with Nextcloud Office aka Collabora Online you get much more than a shitty GDocs.

Of course some apps like the calendar have not been rewritten.

Most readers do not understand what it takes to rewrite the frontend for an entire ecosystem.

atoav 11/3/2025||
As someone who has hosted a few Nextcloud instances for a few years: Nextcloud can be quick if you make it work. If you want to get a good feel for how it can be rent a Hetzner storage box (1TB for below 5 Euros a month).

You sadly can't just install nextcloud on your vanilla server and expect it to perform well.

maples37 11/3/2025|
Do you have any tips and tricks to share? I'm running a self-hosted instance on an old desktop PC in my basement for me and a couple family members. Performance is kinda meh, and I don't think it's due to resource constraints on the server itself. This is after following the performance recommendations in the admin console to tweak php.ini settings.
atoav 11/4/2025||
Thie was a few years ago so I can't say I exsctly remember, but thinking about PHP performance is certainly one of the good routes to think about.
rpgbr 11/3/2025||
I wonder how does bewCloud[1] stack up against NextCloud, since it's meant to be a “modern and simpler alternative” to it. Has anyone tested it?

[1] https://bewcloud.com/

BrunoBernardino 11/6/2025|
bewCloud creator here.

Hundreds of people are using it as a replacement. If you don't use/need more than the core Nextcloud apps (calendar, contacts, file/photo storage and sync, notes), it's a great replacement for it. If you want/need/use Nextcloud's extensibility (the multitude of apps), it's not really an option right now (maybe in the future I'll add some sort of external app system, but it's not in my near-term plan).

cbondurant 11/3/2025||
I've used nextcloud for close to I think 8 years now as a replacement for google drive.

However my need for something like google drive has reduced massively, and nextcloud continues to be a massive maintenance pain due to its frustratingly fast release cadence.

I don't want to have to log into my admin account and baby it through a new release and migration every four months! Why aren't there any LTS branches? The amount of admin work that nextcloud requires only makes sense for when you legitimately have a whole group of people with accounts that are all utilizing it regularly.

This is honestly the kick in the pants I need to find a solution that actually fits my current use-case. (I just need to sync my fuckin keepass vault to my phone, man.) Syncthing looks promising with significantly less hassle...

jw_cook 11/3/2025||
The linuxserver.io image for Nextcloud requires considerably less babysitting for upgrades: https://docs.linuxserver.io/images/docker-nextcloud

As long as you only upgrade one major version at a time, it doesn't require putting the server in maintenance mode or using the occ cli.

caspar 11/4/2025|||
Been using syncthing with keepass(X/XC) for probably half a decade now and it works great, especially since KeepassXC has a great built-in merge feature for the rare cases that you get conflicts from modifying your vault on different clients before they sync.

The only major point of friction with syncthing is that you should designate one almost-always-on device as "introducer" for every single one of your devices, so that it will tell all your devices whenever it learns about a new device. Otherwise whenever you gain a device (or reinstall etc) then you have to go to N devices to add your new device there.

Oh, and you can't use syncthing to replicate things between two dirs on the same computer - which isn't a big deal for the keepass usecase and arguably is more of a rsync+cron task anyway but good to be aware of.

xandrius 11/3/2025|||
Been running NC on my home server and basically maybe update it once a year or so? Even less probably, so definitely not a must to update every time. Plus via snap it's pretty simple.
tracker1 11/3/2025||
Might also consider Vaultwarden/Bitwarden as a self-host alternative. Yeah it's client-server... that said, been pretty happy as a user.
esafak 11/3/2025||
Does anyone know what they are doing wrong to create such large bundles? What is the lesson here?
bastawhiz 11/3/2025||
Not paying attention.

1. Indiscriminate use of packages when a few lines of code would do.

2. Loading everything on every page.

3. Poor bundling strategy, if any.

4. No minification step.

5. Polyfilling for long dead, obsolete browsers

6. Having multiple libraries that accomplish the same thing

7. Using tools and then not doing any optimization at all (like using React and not enabling React Runtime)

Arguably things like an email client and file storage are apps and not pages so a SPA isn't unreasonable. The thing is, you don't end up with this much code by being diligent and following best practices. You get here by being lazy or uninformed.

nullgeo 11/3/2025||
What is React runtime? I looked it up and the closest thing I came across is the newly announced React compiler. I have a vested interest in this because currently working on a micro-SaaS that uses React heavily and still suffering bundle bloat even after performing all the usual optimizations.
bastawhiz 11/3/2025|||
When you compile JSX to JavaScript, it produces a series of function calls representing the structure of the JSX. In a recent major version, React added a new set of functions which are more efficient at both runtime and during transport, and don't require an explicit import (which helps cut down on unnecessary dependencies).
silverwind 11/3/2025||
You mean the automatic runtime introduced in 2020. It does not have any impact on the performance, it's just a pure developer UX improvement.
bastawhiz 11/4/2025||
It improves the bundle size for most apps because the imported functions can be minified better. Depending on your bundler, it can avoid function calls at runtime.
adzm 11/3/2025|||
React compiler is awesome for minimizing unnecessary renders but doesn't help with bundle size; might even make it worse. But in my experience it really helps with runtime performance if your code was not already highly optimized.
eMerzh 11/3/2025||
I think, some of the issues here is that first nextcloud tries to be compatible with any managed / mutualized hosting.

They also treat every "module"/"apps" whatever you call it, as completely distinct spa without proving much of a sdk/framework. Which mean each app, add is own deps, manage is own build, etc...

Also don't forget that app can even be a part of a screen not the whole thing

andai 11/3/2025||
For reference, 20 MB is three hundred and thirteen Commodores.
robin_reala 11/3/2025||
The complete Doom 2, including all graphics, maps, music and sound effects, shipped on 4 floppies, totalling 5.76MB.
zdragnar 11/3/2025||
The original Doom 2 ran 64,000 pixels (320x200). 4k UHD monitors now show 8.3 million pixels.

YMMV.

Of course, Doom 2 is full of Carmack shenanigans to squeeze every possible ounce of performance out of every byte, written in hand optimized C and assembly. Nextcloud is delivered in UTF-8 text, in a high level scripting language, entirely unoptimized with lots of low hanging fruit for improvement.

Yie1cho 11/3/2025|||
yes, but why isn't it optimised? not as extreme as doom had to be, but to be a bit better? especially the low hanging fruits.

this is why i think there's another version for customers who are paying for it, with tuning, optimization, whatever.

trashb 11/3/2025||||
Sure but i doubt there is more image data in the delivered nextcloud data compared to doom2, games famously need textures where a website usually needs mostly vector and css based graphics.

Actually Carmack did squeeze every possible ounce of performance out of DOOM, however that does not always mean he was optimizing for size. If you want to see a project optimized for size you might check out ".kkrieger" from ".theprodukkt" which accomplishes a 3d shooter in 97,280bytes.

You know how many characters 20MB of UTF-8 text is right? If we are talking about javascript it's probably mostly ascii so quite close to 20 million characters. If we take a wild estimate of 80 characters per line that would be 250000 lines of code.

I personally think 20MB is outrageous for any website, webapp or similar. Especially if you want to offer a product to a wide range of devices on a lot of different networks. Reloading a huge chunk of that on every page load feels like bad design.

Developers usually take for granted the modern convenience of a good network connection, imagine using this on a slow connection it would be horrid. Even in the western "first world" countries there are still quite some people connecting with outdated hardware or slow connections, we often forget them.

If you are making any sort of webapp you ideally have to think about every byte you send to your customer.

hamburglar 11/3/2025||||
I mean, if you’re going to include carmack’s relentless optimizer mindset in the description, I feel like your description of the NextCloud situation should probably end with “and written by people who think shipping 15MB of JavaScript per page is reasonable.”
ekjhgkejhgk 11/3/2025|||
You know apps don't store pixels, right? So why are you counting pixels?
zdragnar 11/3/2025||
A single picture that looks decent on a modern screen, taken from a modern camera, can easily be larger than the original Doom 2 binary.
ekjhgkejhgk 11/3/2025||
You don't need pictures for a CRUD app. Should all be vectorial in any case.
mrweasel 11/3/2025|||
The article suggests that it takes 14MB of Javascript to do just the calendar. I doubt that all of my calendar events for 2025 is 14MB.
chaostheory 11/3/2025|||
Sure, but what people leave out is that it’s mostly C and assembly. That just isn’t realistic anymore if you want a better developer experience that leads to faster feature rollout, better security, and better stabilty.

This is like when people reminisce about the performance of windows 95 and its apps while forgetting about getting a blue screen of death every other hour.

trashb 11/3/2025|||
Exactly javascript is a higher level language with a lot of required functionality build in. When compared to C you would need to (for most tasks) write way less actual code in javascript to achieve the same result, for example graphics or maths routines. Therefore it's crazy that it's that big.
tracker1 11/3/2025||||
I think it's a double edged sword of Open-Source/FLOSS... some problems are hard and take a lot of effort. One example I consistently point to is core component libraries... React has MUI and Mantine, and I'm not familiar with any open-source alternatives that come close. As a developer, if there was one for Leptos/Yew/Dioxus, I'd have likely jumped ship to Rust+WASM. They're all fast enough with different advantges and disadvantages.

All said... I actually like TypeScript and React fine for teams of developers... I think NextCloud likely has coordination issues that go beyond the language or even libraries used.

magicalhippo 11/3/2025|||
Windows 2000 was quite snappy on my Pentium 150, and pretty rock solid. It was when I stopped being good at fixing computers because it just worked, so I didn't get much practice.
tracker1 11/3/2025|||
I did get a BSOD from a few software packages in Win2k, but it was fewer and much farther between than Win9x/me... I didn't bump to XP until after SP3 came out... I also liked Win7 a lot. I haven't liked much of Windows since 7 though.

Currently using Pop + Cosmic.

chaostheory 11/3/2025|||
Win2000 is in the same class as Win95 despite being slightly more stable. It still locked up and crashed more frequently than modern software.
magicalhippo 11/3/2025||
Then you did something special. For me Win2k was at least three orders of magnitude more stable, and based on my buddies that was not exceptional.
magicalhippo 11/3/2025||
Or the same number of 64k intros[1][2][3]...

[1]: https://www.youtube.com/watch?v=iXgseVYvhek

[2]: https://www.youtube.com/watch?v=ZWCQfg2IuUE

[3]: https://www.youtube.com/watch?v=4lWbKcPEy_w

zeppelin101 11/3/2025||
The major shortcoming of NextCloud, in my opinion, is that that it's not able to do sync over LAN. Imagine wanting to synchronize 1TB+ of data and not being able to do so over a 1 Gbps+ local connection, when another local device has all the necessary data. There is some workaround involving "split DNS", but I haven't gotten around to it. Other than that, I thought NC was absolutely fantastic.
jw_cook 11/3/2025||
Check if your router has an option to add custom DNS entries. If you're using OpenWRT, for example, it's already running dnsmasq, which can do split DNS relatively easily: https://blog.entek.org.uk/notes/2021/01/05/split-dns-with-dn...

If not, and you don't want to set up dnsmasq just for Nextcloud over LAN, then DNS-based adblock software like AdGuard Home would be a good option (as in, it would give you more benefit for the amount of time/effort required). With AdGuard, you just add a line under Filters -> DNS rewrites. PiHole can do this as well (it's been awhile since I've used it, but I believe there's a Local DNS settings page).

Otherwise, if you only have a small handful of devices, you could add an entry to /etc/hosts (or equivalent) on each device. Not pretty, but it works.

zeppelin101 11/3/2025||
That's a good tip. I had my local self-hosting phase during covid, but if I ever come back to it, I'll try this.
redrblackr 11/3/2025|||
Or just use ipv6!

You could also upload directly to the filesystem and then run occ files:scan, or if the storage is mounted as external it just works.

Another method is to set your machines /etc/hosts (or equivalent) to the local IP of the instance (if the device is only on lan you can keep it, otherwise remove it after the large transfer).

Now your rounter should not send traffic to itself away, just loop it internally so it never has to go over your isps connection - so running over lan only helps if your switch is faster than your router..

zeppelin101 11/3/2025||
Good to know!
accrual 11/3/2025|||
I had a similar issue with a public game server that required connecting through the WAN even if clients were local on the LAN. I considered split DNS (resolving the name differently depending on the source) but it was complicated for my setup. Instead I found a one-line solution on my OpenBSD router:

    pass in on $lan_if inet proto tcp to (egress) port 12345 rdr-to 192.168.1.10
It basically says "pass packets from the LAN interface towards the WAN (egress) on the game port and redirect the traffic to the local game server". The local client doesn't know anything happened, it just worked.
DrammBA 11/3/2025|||
> The major shortcoming of NextCloud, in my opinion, is that that it's not able to do sync over LAN.

That’s an interesting way to describe a lack of configuration on your part.

Imagine me saying: "The major shortcoming of Google drive, in my opinion, is that that it's not able to sync files from my phone. There is some workaround involving an app called 'Google drive' that I have to install on my phone, but I haven't gotten around to it. Other than that, Google drive is absolutely fantastic.

zeppelin101 11/3/2025||
I don't know why the sarcasm is so necessary. I very much enjoyed Nextcloud and I proudly ran it for the better part of a year. I even ran various NC-ecosystem apps, such as the Office ones. However, my objective was to try it out from the standpoint of regular self-hosting. I wanted to contrast the 'out-of-the-box' experience to Dropbox, which I had been using for many years up to that point. Yes, one was centrally hosted, while the other was self-hosted, but still, that was the experiment I was running. So I'm sorry if I didn't live up to your standards of what a user should be doing to their software, but I sure had lots of fun self-hosting tons of software at that time.
DrammBA 11/4/2025||
Not sure why you took it so personally, I was simply pointing out that if you don't configure a feature then that feature would obviously not work, for example phone sync for google drive won't work if you don't download the google drive app, and lan access for nextcloud won't work if you don't set up lan access.
immibis 11/4/2025||
Except your phone comes with Google Drive and syncs things you don't want it to, so Google can scan your life better.
DrammBA 11/4/2025||
Last time I checked my iPhone didn't come with Google drive
tfvlrue 11/4/2025|||
> it's not able to do sync over LAN

I'm curious what you mean by this. I've never had trouble syncing files with the Nextcloud client, inside or outside of my LAN. I didn't do anything special to make it work internally. It's definitely not the fastest thing ever, but it works pretty seamlessly in my experience.

Jaxan 11/3/2025||
I use it on LAN without a problem (using mDNS). Sure it runs with self signed certificates, but that’s ok with me.
dugite-code 11/4/2025||
In my experience the bottle neck for any nextcloud install is typically the database.

Unlike many other projects it's surprisingly easy to get in a situation where the db is throttling due to IO issues on a single box machine. Having the db at on a seperate drive from the storage and logging really speeds things up.

That and setting up a lot of the background tasks like image preview generation, redis ect properly.

poisonborz 11/4/2025|
I agree with the criticism but wonder why are there no alternatives? Nextcloud, for what most people use it, is a rather simple, straightforward collection of apps, yet not even those single apps have alternatives. Eg. show me a good selfhostable web calendar, it doesn't exist.

Why does Nextcloud, or even just parts of it, not have dozens of alternatives?

More comments...