logoalt Hacker News

Why Nextcloud feels slow to use

363 pointsby rpgbryesterday at 1:21 PM282 commentsview on HN

Comments

palatayesterday at 2:35 PM

I would love to like Nextcloud, it's pretty great that it does exist. Just that makes it better than... well everything else I haven't found.

What frustrates me is that it looks like it works, but once in a while it breaks in a way that is pretty much irreparable (or at least not in a practical way).

I want to run an iOS/Android app that backs up images on my server. I tried the iOS app and when it works, it's cool. It's just that once in a while I get errors like "locked webdav" files and it never seems to recover, or sometimes it just stops synchronising and the only way to recover seems to be to restart the sync from zero. It will gladly upload 80GB of pictures "for nothing", discarding each one when it arrives on the server because it already exists (or so it seems, maybe it just overwrites everything).

The thing is that I want my family to use the app, so I can't access their phone for multiple hours every 2 weeks; it has to work reliably.

If it was just for backing up my photos... well I don't need Nextcloud for that.

Again, alternatives just don't seem to exist, where I can install an app on my parent's iOS and have it synchronise their photo gallery in the background. Except I guess iCloud, that is.

show 6 replies
PaulKeebleyesterday at 3:08 PM

I don't doubt that large amounts of javascript can often cause issues but even when cached NextCloud feels sluggish. when I look at just the network tab of a refresh of the calendar page it does 124 network calls, 31 of which aren't cached. it seems to be making a call per calendar each of which is over 30ms. So that stacks up the more calendars you have(and you have a number by default like contact birthdays).

The Javascript performance trace shows over 50% of the work is in making the asynchronous calls to pull those calendars and other network calls one by one and then on all the refresh updates it causes putting them onto the page.

Supporting all these N calendar calls is pulls individually for calendar rooms and calendar resources and "principles" for the user. All separate individual network calls some of which must be gating the later individual calendar calls.

Its not just that, it also makes a call for notifications, groups, user status and multiple heartbeats to complete the page as well, all before it tries to get the calendar details.

This is why I think why its slow, its pulling down the page and then the javascript is pulling down all the bits of data for everything on the screen with individual calls, waiting for the responses before it can progress in many ways to make the further calls of which there can be N many depending on what the user is doing.

show 1 reply
dingdingdangyesterday at 3:10 PM

Having at some point maintained a soft fork / patch-set for Nextcloud.. yes, there is so much performance left on the table. With a few basic patches the file manager, for example, sped up by magnitudes in terms of render speed.

The issue remains that the core itself feels like layers upon layers of encrusted code that instead of being fixed have just had another layer added ... "something fundamental wrong? Just add Redis as a dependency. Does it help? Unsure. Let's add something else. Don't like having the config in a db? Let's move some of it to ini files (or vice versa)..etc..etc." it feels like that's the cycle and it ain't pretty and I don't trust the result at all. Eventually abandoned the project.

Edit: at some point I reckon some part of the ecosystem recognised some of these issues and hence Owncloud remade a large part of the fundamentals in Golang. It remains unknown to me whether this sorted things or not. All of these projects feel like they suffer badly from "overbuild".

Edit-edit: another layer to add to the mix is that the "overbuild" situation is probably largely what allows the hosting economy around these open source solutions to thrive since Nextcloud and co. are so over-engineered and badly documented that they -require- a dedicated sys-admin team to run well.

madeofpalkyesterday at 3:33 PM

I don't think this article actually does a great job of explaining why Nextcloud feels slow. It shows lots of big numbers for MBs of Javascript being downloading, but how does that actually impact the user experience? Is the "slow" Nextcloud just sitting around waiting for these JS assets to load and parse?

From my experience, this doesn't meaningfully impact performance. Performance problems come from "accidentally quadratic" logic in the frontend, poorly optimised UI updates, and too many API calls.

show 2 replies
RiverCrochetyesterday at 2:45 PM

I've played around with many self-hosted file manager apps. My first one was Ajaxplorer which then became Pydio. I really liked Pydio but didn't stick with it because it was too slow. I briefly played with Nextcloud but didn't stick with it either.

Eventually I ran into FileRun and loved it, even though it wasn't completely open source. FileRun is fast, worked on both desktop and mobile via browser nicely, and I never had an issue with it. It was free for personal use a few years ago, and unfortunately is not anymore. But it's worth the license if you have the money for it.

I tried setting up SeaFile but I had issues getting it working via a reverse proxy and gave up on it.

I like copyparty (https://github.com/9001/copyparty) - really dead simple to use and quick like FIleRun - but the web interface is not geared towards casual users. I also miss Filerun's "Request a file" feature which worked very nicely if you just wanted someone to upload a file to you and then be done.

xandriusyesterday at 9:13 PM

I know people here don't like it when one answers to complaints about OSS projects with "go fix it then" but seeing the comment section here, it's hard to not at least think it.

About 50-100 people saying that they know exactly why NC is slow, bloated, bad, but fail to a) point out a valid alternative, b) to act and do something about it.

I'm going to say that I love NC despite its slow performance. I own my storage, I can do Google Drive stuff without selling my soul (aka data) to the devil and I can go patch up stuff, since the code is open.

Is downloading lots of JS and waiting a few seconds bad? Yes. But did I pay for any of it? No. Am I the product as a result of choosing NC? Also no.

Having a basic file system with a dropbox alternative and being able to go and "shop" for extensions and extra tools feels so COOL and fun. Do I want to own my password manager? Bam, covered. Do I want to centralise calendar, mail and kanban into one? Bam, covered.

Codebase is AGPL, installs easily and you don't need to do surgery every new update.

I've been running it without hiccups for over 6 years now.

Would I love it to be as fast and smooth as a platform developed by an evil tech behemoth which wants to swallow everyone's data? Of course, am I happy NC exists? Yes!

And if you got this far, dear reader, give it a try. It's free and you can delete it in a second but if you find something to improve and know how, go help, it helps us all :)

aeldidiyesterday at 7:05 PM

Nextcloud is something I have a somewhat love-hate relationship with. On one hand, I've used Nextcloud for ~7 years to backup and provide access to all of my family's photos. We can look at our family pictures and memories from any computer, and it's all private and runs mostly without any headaches.

On the other hand, Nextcloud is so far from being something like Google Docs, and I would never recommend it as a general replacement to someone who can't tolerate "jank", for lack of a better word. There are so many small papercuts you'll notice when using it as a power user. Right off the top of my head, uploading large files is finicky, and no amount of web server config tinkering gets it to always work; thumbnail loading is always spotty, and it's significantly slower than it needs to be (I'm talking orders of magnitude).

With all that said, I'm so grateful for Nextcloud since I don't have a replacement, and I would prefer not having all our baby and vacation pictures feeding some big corporation's AI. We really ought to have a safe, private place to store files in 2025 that the average person can wrap their head around. I only wish my family took better advantage of it, since I'm essentially providing them with unlimited storage.

show 1 reply
bogwogyesterday at 3:17 PM

Nextcloud is bloated and slow, but it works and is reliable. I've been running a small instance in a business setting with around 8 daily users for many years. It is rock solid and requires zero maintenance.

But people rarely use the web apps. Instead, it's used more like a NAS with the desktop sync client being the primary interface. Nobody likes the web apps because they're slow. The Windows desktop sync client has a really annoying update process, but other than that is excellent.

I could replace it with a traditional NAS, but the main feature keeping me there is an IMAP authentication plugin. This allows users to sign in with their business email/password. It works so well and makes it so much easier to manage user accounts, revoke access, do password resets, etc.

show 1 reply
tripplyonsyesterday at 2:54 PM

I once discovered and reported a vulnerability in Nextcloud's web client that was due to them including an outdated version of a JavaScript-based PDF viewer. I always wondered why they couldn't just use the browser's PDF viewer. I made $100, which was a large amount to me as a 16 year old at the time.

Here is a blog post I wrote at the time about the vulnerability (CVE-2020-8155): https://tripplyons.com/blog/nextcloud-bug-bounty

show 1 reply
aborsyyesterday at 3:27 PM

A good thing thing about Nextcloud is that by learning one tool, you get a full suite of collaboration apps: sync, file sharing, calendar, notes, collectives, office (via Collabora or OnlyOffice), and more. These features are pretty good, plus, you get things like photo management and Talk, which are decent.

Sure, some people might argue that there are specialized tools for each of these functions. And that’s true. But the tradeoff is that you'd need to manage a lot more with individual services. With Nextcloud, you get a unified platform that might be good enough to run a company, even if it’s not very fast and some features might have bugs.

The AIO has addressed issues like update management and reliability, it been very good in my experience. You get a fully tested, ready-to-go package from Nextcloud.

That said, I wonder, if the platform were rewritten in a more performance-efficient language than PHP, with a simplified codebase and trimmed-down features, would it run faster? The UI could also be more polished (see Synology DSM web interface). The interface in Synology looks really nice!

xingpedyesterday at 3:31 PM

I gave up on using Nextcloud because every time it updated it accumulated more and more errors and there was no way I was going to use a software that I had to troubleshoot every single update. Also the defaults for pictures are apparently quite stupid and so instead of making and showing tiny thumbnails for pictures, the thumbnails are unnecessarily large and loading the thumbnails for a folder of pictures takes forever. You can fix this and tell it to make smaller thumbnails apparently, but again, why am I having to fix everything myself? These should be sane defaults. Unfortunately, I just can't trust Nextcloud.

branonyesterday at 2:16 PM

I have been considering https://bewcloud.com/ + Immich as an alternative

Nextcloud's client support is very good though and it has some great apps, I use PhoneTrack on road trips a lot

show 2 replies
bArrayyesterday at 2:19 PM

NextCloud does feel slow. What I want is not only a cloud service that does lots of common tasks, but it also should do it lightly and simply.

I'm extremely tempted to write a lightweight alternative. I'm thinking sourcehut [1] vs GitHub.

[1] https://sourcehut.org/

show 2 replies
ivolimmenyesterday at 2:31 PM

On the same note a jira ticket as configured where I work the entire page is 42mb. And I use ad blockers so I already skip the page counting stuff

show 1 reply
Yie1choyesterday at 2:43 PM

nextcloud just feels abandoned, even if it isn't of course.

maybe paying customers are getting a different/updated/tuned version of it. maybe not. but the only thing that keeps me using it is there isn't any real selfhosted alternatives.

why is it slow? if you just blink or take a breath, it touches the database. years ago i've tried to optimise it a bit and noticed that there are horrible amount of DB transactions there without any apparent reason.

also, the android client is so broken...

show 1 reply
jw_cookyesterday at 4:43 PM

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
show 1 reply
jrochkind1yesterday at 2:25 PM

I'm curious how much Javascript eg gmail and google docs/drive give you, in comparison.

show 1 reply
skeptruneyesterday at 6:36 PM

I know that this is supposed to be targeted at NextCloud in particular, but I think it's a good standalone "you should care about how much JavaScript you ship" post as well.

What frustrates me about modern web development is that everyone is focused on making it work much more than they are making it sure it works fast. Then when you go to push back, the response is always something like "we need to not spend time over-optimizing."

Sent this straight to the team slack haha.

cbondurantyesterday at 3:26 PM

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...

show 1 reply
zeppelin101yesterday at 3:48 PM

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.

gloosxyesterday at 5:34 PM

I was expecting the author to open the profiler tab instead of just staring at network. But its yet another "heavy JavaScript bad" rant.

You really consider 1 MB of JS too heavy for an application with hundreds of features? How exactly are developers supposed to fit an entire web app into that? Why does this minimalism suddenly apply only to JavaScript? Should every desktop app be under 1 MB too? Is Windows Calculator 30 MB binary also an offense to your principles?

What year is it, 2002? Even low-band 5G gives you 30–250 Mbps down. At those speeds, 20 MB of JS downloads in well under a second. So whats the math beihnd the 5–10 second figure? What about the cache? Is it turned off for you and you redownload the whole nextcloud from scratch every time?

Nextcloud is undeniably slow, but the real reasons show up in the profiler, not the network tab.

show 4 replies
rpgbryesterday at 4:40 PM

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/

estimator7292yesterday at 4:46 PM

Like most of us I think, I really, really wanted to like nextcloud. I put it on an admittedly somewhat slow dual Xeon server, gave it all 32 threads and many, many gigabytes of ram.

Even on a modern browser on a brand new leading-edge computer, it was completely unusably slow.

Horrendous optimization aside, NC is also chasing the current fad of stripping out useful features and replacing them with oceans of padding. The stock photos app doesn't even have the ability to sort by date!. That's been table stakes for a photo viewer since the 20th goddamn century.

When Windows Explorer offers a more performant and featureful experience, you've fucked up real bad.

I would feel incredibly bad and ashamed to publish software in the condition that NextCloud is in. It is IMO completely unacceptable.

elAhmoyesterday at 5:33 PM

One thing that could help with this is to use CDN for these static assets, while still having the Nextcloud hosted on your own.

We had a similar situation with some notebooks running in production, which were quite slow to load because it was loading a lot of JS files / WASM for the purposes of showing the UI. This was not part of our core logic, and using a CDN to load these, but still relying on private prod instance for business logic helped significantly.

I have a feeling this would be helpful here as well.

andaiyesterday at 2:13 PM

For reference, 20 MB is three hundred and thirteen Commodores.

show 4 replies
lurker_jMckQT99yesterday at 6:21 PM

(tangential) Reading the comments, several mentioned "copyparty", never heard of it before, haven't used it, haven't reviewed but does there "feature showcase" video makes me want to give it a shot https://www.youtube.com/watch?v=15_-hgsX2V0 :)

esafakyesterday at 2:28 PM

Does anyone know what they are doing wrong to create such large bundles? What is the lesson here?

show 1 reply
buibuibuiyesterday at 2:48 PM

I find the Nextcloud client really buggy on the Mac, especially the VFS integration. The file syncing is also really slow. I switched back to P2P file syncing via Syncthing and Resilio Sync out of frustration.

jimangel2001yesterday at 5:05 PM

Nextcloud is a mess. It tries to do everything. The only reason I keep it in production is because it's a hustle to transition my files and DAVx info elsewhere.

The http upload is miserable, it's slow, it fails with no message, it fails to start, it hangs. When uploading duplicate files the popup is confusing. The UI is slow, the addons break on every update. The gallery is very bad, now we use immich.

ndom91yesterday at 4:26 PM

Many have brought up more websockets instead of REST API calls. It looks like they're already working in that direction.. scroll down to "Developer tools and APIs": https://nextcloud.com/blog/nextcloud-hub25-autumn/

exabrialyesterday at 3:56 PM

>For context, I consider 1 MB of Javascript to be on the heavy side for a web page/app.

I feel like > 2kb of Javascript is heavy. Literally not needed.

PunchyHamsteryesterday at 4:41 PM

It is slow and code seems to be messy enough to be fragile. It's also in PHP that doesn't help performance.

s_ting765yesterday at 3:38 PM

Nextcloud server is written in PHP. Of course it is slow. It's also designed to be used as an office productivity suite meaning a lot of features you may not actually use are enabled by default and those services come with their own cronjobs and so on.

bfkwlfkjfyesterday at 3:13 PM

I've never used nextcloud, but I always imagined that the point is you can run services but then plug in any calendar app etc. You don't have to be running nextclouds calendar, I thought. Did I misundestand how it works?

show 2 replies
floundyyesterday at 1:57 PM

I'm still setting up my own home server, adding one functionality at a time. I wanted to like Nextcloud but it's just too bloated.

Radicale is a good calendar replacement. I'd rather have single-function apps at this point.

show 1 reply
tokarfyesterday at 2:19 PM

Nextcloud not perfect but it's still one of a major project that has not shifted to business oriented licence and where all components are available and not paywalled with enterprise edition.

So yes not perfect, bloated js but it works and is maintained.

So I'd rather thanks all developers involved in nextcloud than whine about bloated js.

show 1 reply
8cvor6j844qw_d6yesterday at 3:06 PM

Is Nextcloud reliable enough for "production" use?

Last time I heard a certain privacy community recommended against Nextcloud due to some issues with Nextcloud E2EE.

show 2 replies
catapartyesterday at 3:22 PM

Just like any other modern app: first you make it work using frameworks. Then, as soon as the "Core" product is done - just a few more features - then we'll circle back around to ripping out those bloated frameworks for something more lithe. Shouldn't be more than two weeks, now. Most of the base stuff is done. Just another feature or two. I mean, a little longer, if we have some issues with those features, sure. But we'll get back around to a simpler UI right after! Just those features, their bugs and support, and then - well documentation. Just the minimum stuff. Enough to know what we did when we come back to it. But we'll whip up those docs and then it's right on to slimming down the frontend! Won't be long now...

dengoliusyesterday at 4:53 PM

Maybe it because of using PHP?

show 1 reply
ndom91yesterday at 4:22 PM

This post completely misses the point. Linear downloads ~6.1mb of JS over the network, decompressed to ~31mb and still feels snappy.

Applications like linear and nextcloud aren't designed to be opened and closed constantly. You open them once and then work in that tab for the remainder of your session.

As others have pointed out in this thread, "feeling slow" is mostly due to the number of fetch requests and the backend serving those requests.

internet_pointsyesterday at 3:04 PM

syncthing otoh barely even has a web ui, so it's really fast :-P

show 1 reply
macinjoshyesterday at 4:47 PM

Javascript making PHP look bad.

spencerflemyesterday at 8:42 PM

I think there’s something cool possible in running the NextCloud plugin api over Sandstorm’s auth and sandboxing

nairboonyesterday at 7:01 PM

Microsoft Teams goes hold my beer and downloads more than 75 MB of Javascript.

atoavyesterday at 5:18 PM

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.

show 1 reply
kirito1337yesterday at 3:35 PM

I don't think I will ever use something like that. I work in over 10 PCs everyday and my only synchronisation is a 16 GB USB stick. I keep all important work, apps and files there.

jgoode19yesterday at 4:32 PM

[flagged]

show 2 replies
mlokyesterday at 2:02 PM

Could an installable PWA solve this ?

show 2 replies