Cloud Cloud

Iva Horn

Notes from a software engineer for iPhone, iPad and Mac apps.

Memoji

Nextcloud Desktop Client Size Analysis

February 11, 2026 • #MacOS #Nextcloud #Qt

A question I encounter regularly from users is why the Nextcloud Desktop Client is so large. After all, it’s “just” a file synchronization app, right? Let me explain what’s actually inside that 945 MB application bundle by inspecting the 4.0.6 release with file provider extension for macOS.

I completely understand the confusion. Having worked on file synchronization clients before, I know it’s entirely possible to ship such an app in the range of 20 to 30 MB. So what makes the Nextcloud Desktop Client more than 30 times larger?

The Multi-Platform Tradeoff

The Nextcloud Desktop Client is built on Qt, a multi-platform framework that allows us to maintain a single codebase for Windows, macOS, and Linux. This brings enormous benefits for development and maintenance, but it comes with tradeoffs. One of the most visible is the overhead in application size.

Unlike a native macOS app that leverages frameworks already built into the operating system, a Qt-based application needs to bundle all these frameworks within the app itself. Every platform-independent component, every piece of “glue” code that makes the app work across different operating systems—it all has to be included.

The Elephant in the Room

But the Qt framework overhead isn’t the main culprit. The biggest single component is something you might not expect: an entire browser engine.

a memoji

About half of the application size—479 MB out of 945 MB—is QtWebEngine, which is essentially the Chromium browser embedded within the app. It’s a technical necessity for a very specific reason: signing in with Nextcloud’s global scale feature.

The current login flow methods for global scale authentication don’t work with the user’s default browser. We need a web view under our control, inside the app itself. Without it, users on federated Nextcloud instances couldn’t reliably authenticate.

What’s Inside

Let me break down what makes up the Nextcloud Desktop Client:

piechart

Here’s what each category contains:

  • QtWebEngine - 479 MB (50.7%): The embedded browser engine needed for global scale authentication
  • File Provider Extensions - 66 MB (7%): The macOS-native file provider and UI extensions that enable Finder integration and the Files app integration
  • Other Qt Frameworks - 175 MB (18.5%): All other Qt components for GUI, networking, QML, widgets, and more
  • Supporting Libraries - 178 MB (18.8%): Shared libraries for multimedia codecs, encryption (OpenSSL), compression, and other dependencies
  • Application Binary & Resources - 47 MB (5%): The actual Nextcloud application code, icons, translations, and assets

As you can see, the embedded browser alone accounts for more than half the total size. The actual Nextcloud code and resources? Less than 5%.

a memoji

The macOS-Specific Overhead

There’s one more thing that makes the macOS version particularly large: it’s a universal binary. To support both Intel and Apple Silicon Macs natively, the app includes dedicated binaries for each architecture. Windows and Linux versions of the Nextcloud Desktop Client are smaller because they only need to include binaries for a single architecture.

The Outlook

I’m not the only one who has a native macOS app built solely on Apple’s frameworks on their wishlist. Switching to only native technologies on macOS comes up as a topic from time to time. A purely native implementation could leverage frameworks already included in macOS itself, potentially reducing the app size vastly.

However, such a change would be a massive undertaking. It would mean maintaining separate codebases for each platform, which has significant implications for development resources and long-term maintenance.

For now, the size tradeoff is the price we pay for cross-platform consistency and the technical requirements of features like global scale authentication.