LabHub

Blog

Cross-Platform Desktop Apps 2026 Deep Dive - Tauri 2, Electron 34, Wails 3, NeutralinoJS, Flutter Desktop, Sciter, Slint, Iced

한국어English日本語

Prologue - Desktop Is Once Again the Primary Surface

In the mid 2010s, mobile apps seemed to be on track to swallow every screen. The reality of 2026 ran the opposite way. Developer tools (VS Code, Cursor, JetBrains), design tools (Figma Desktop, Affinity), collaboration tools (Slack, Discord, Notion, Linear, KakaoTalk Desktop), security tools (1Password, Bitwarden), and media tools (OBS, Reaper, DaVinci Resolve, Cap) - all of them treat desktop as the primary surface. The web app is a fallback, the mobile app is the notification channel, the real work happens on the desktop.

So the question "with what should we build a cross-platform desktop app" is once again the hottest one. A month ago I wrote a category map of desktop frameworks. This piece walks the map. It installs the candidates, builds their bundles, measures memory, tries packaging and code signing, and from those results concludes what you should pick.

One-line core: in 2026 the choice is no longer "Electron or Tauri". Wails 3, Flutter Desktop, Slint, Iced, Lynx, Avalonia, MAUI - the camps multiplied, each with its own strength. The goal here is to organise those camps in thirty minutes and let you pick "your team's tool" by five criteria.


1.1 From Bundled Chromium to System WebView

The decade where every app shipped its own Chromium is ending. WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux are mature enough now, and using them shrinks the bundle to roughly one tenth. Tauri 2, Wails 3, and NeutralinoJS all belong to the system-webview camp.

1.2 Desktop Frameworks Extending into Mobile

Tauri 2 added iOS and Android in 2024, bringing "desktop plus mobile from one codebase" back to the table. Flutter is a mobile framework that grew up onto the desktop, and Compose Multiplatform and MAUI carry the same ambition.

1.3 The Rust Camp Goes Mainstream

Tauri, Slint, Iced, Xilem, egui, gtk-rs - there are now more than six Rust tools for desktop UI. By 2026 starting a new project in Rust is no longer a risk play, it is a defensible choice.

1.4 Standardised Packaging and Code Signing

macOS Developer ID with notarization, Windows Authenticode with EV certificates, Linux Flatpak and Snap - five years ago every platform demanded its own ritual, but by 2026 electron-builder, Tauri Action, and GitHub Actions workflows have hardened into near-standard templates.


2. Electron 34 - Still the Elephant, but the Road Is Narrowing

2.1 Origins and Today

Electron was originally Atom Shell. GitHub started it in 2013 to build the Atom editor, and after the project moved to the OpenJS Foundation it has shipped on a steady cadence. As of May 2026 Electron 34 is the stable line, tracking Chromium 130-something. From v34 onwards ASAR Integrity is enforced on macOS and Windows, the new utility process API is in, and native glass effects are supported.

2.2 Who Uses It

2.3 Bundle Size and Memory

An empty Hello World app takes about 150 MB on disk. The compressed download is roughly 80 MB. The empty app uses about 100 to 200 MB of memory, real apps generally land in the 200 to 500 MB range, and Discord or Slack can pass 1 GB.

2.4 Strengths

2.5 Weaknesses


3. Tauri 2 - Leader of the System-WebView Camp

3.1 Origins and Today

Tauri started in 2019 led by Daniel Thompson-Yvetot. It is an MIT-licensed Rust-based desktop framework. v2 shipped officially in 2024 with iOS and Android support, and as of May 2026 it has become the standard answer for the camp that wants desktop and mobile from one codebase.

3.2 Who Uses It

3.3 Bundle Size and Memory

An empty Hello World app weighs around 10 MB. Because it uses the system webview, it does not ship its own Chromium. Memory sits at 50 to 100 MB, about one third of Electron.

3.4 Strengths

3.5 Weaknesses


4. Wails 3 - The Go Camp's Desktop Answer

4.1 Origins and Today

Wails has been built since 2019 by Lea Anthony in Go. MIT licensed. The v3 alpha has been public since 2024 and as of 2026 it is on the edge of an official release. The concept is nearly identical to Tauri - system webview plus compiled backend - but the backend language is Go.

4.2 Bundle Size and Memory

Empty app around 15 MB. Memory 60 to 120 MB. Roughly the same neighbourhood as Tauri.

4.3 Strengths

4.4 Weaknesses


5. NeutralinoJS - The Ultralight Camp

5.1 Origins and Today

NeutralinoJS was started in 2020 by Shalitha Suranga as a TypeScript-based desktop framework. MIT licensed. The idea goes further than Tauri or Wails - it argues "you do not even need Rust or Go, just rely on the system webview". There is no compilation step for the backend.

5.2 Bundle Size and Memory

Empty app around 2 to 5 MB - the smallest of the field. Memory 40 to 80 MB.

5.3 Strengths

5.4 Weaknesses


6. Flutter Desktop - The Own-Rendering Camp

6.1 Origins and Today

Flutter was started by Google in 2017 as a mobile framework. It uses the Dart language and the Skia rendering engine. Desktop went stable in 2022, and by 2026 Windows, macOS, and Linux are all production-ready.

6.2 Who Uses It

6.3 Bundle Size and Memory

Empty app 30 to 50 MB. It does not bundle a webview but it does ship the Skia engine. Memory 100 to 150 MB.

6.4 Strengths

6.5 Weaknesses


7. Sciter - Commercial HTML and CSS Engine

7.1 Origins and Today

Sciter has been built since 2008 by Andrew Fedoniouk as a proprietary desktop engine. It renders a subset of HTML and CSS with its own engine and the bundle is under 5 MB. Most security products - Norton AntiVirus, BitDefender, ESET, Comodo - render their UI with Sciter.

7.2 Bundle Size and Memory

Under 5 MB. Memory 30 to 60 MB. Among desktop tools this is on the very small end.

7.3 Strengths

7.4 Weaknesses


8. Slint 1.x - The Embedded plus Desktop Camp

8.1 Origins and Today

Slint is built by SixtyFPS GmbH, founded by former Qt core developers including Olivier Goffart. It started in 2020. 1.0 shipped in 2023 and as of 2026 it is on the 1.6 line. It targets both embedded systems and the desktop, using Rust plus a DSL.

8.2 Licence

8.3 Strengths

8.4 Weaknesses


9. Iced - Elm-Inspired Rust GUI

9.1 Origins and Today

Iced has been built since 2019 by Hector Ramon. It is a Rust GUI library, MIT licensed, drawing inspiration from the Elm Model-View-Update architecture.

9.2 Strengths

9.3 Weaknesses


10. From Druid to Xilem - Linebender's Evolution

10.1 The End of Druid

Druid was built by Raph Levien's Linebender group from 2018 as a Rust GUI toolkit, but by late 2023 it had essentially entered deprecation. Its successor is Xilem.

10.2 Xilem - A New Attempt

Xilem combines SwiftUI-like declarative patterns, Rust safety, and Linebender's graphics know-how. As of 2026 it is still on a 0.x line and not production ready, but it is one of the most-watched GUI experiments in the Rust camp.


11. egui - The Immediate-Mode Camp

11.1 Origins and Today

egui (pronounced "eh-gooey") is a Rust immediate-mode GUI library built since 2020 by Emil Ernerfeldt. MIT licensed. It shares a concept with Dear ImGui in C++.

11.2 Where It Shows Up

11.3 Strengths

11.4 Weaknesses


12. GTK 4 plus Adwaita - The Linux Native Camp

12.1 Origins and Today

GTK has been the Linux desktop toolkit since 1998. After GTK 4 shipped in 2020 it has become standard practice to pair it with libadwaita, the GNOME design system library. As of 2026 the lines are GTK 4.16 and libadwaita 1.6.

12.2 Who Uses It

12.3 Strengths

12.4 Weaknesses


13. Qt 6.8 LTS plus PyQt6 and PySide6

13.1 Origins and Today

Qt has been the emperor of C++ cross-platform GUI toolkits since 1995. Ownership moved Trolltech to Nokia to The Qt Company. Qt 6.8 LTS shipped in October 2024 and as of 2026 6.8 is the stable LTS while 6.9 is the latest.

13.2 Licence

13.3 Who Uses It

13.4 PyQt6 and PySide6


14. wxWidgets - The Classic C++

wxWidgets has been the oldest cross-platform C++ toolkit since 1992. It calls native widgets on each OS so the look and feel is natural. The downside is modern design is hard and GPU acceleration is weak. By 2026 it is rare for a new project to choose wxWidgets, but plenty of legacy desktop apps still ship on it.


15. JavaFX 23 - Java on the Desktop

15.1 Origins and Today

JavaFX started at Sun in 2008 as a Java-based GUI toolkit. From Java 11 in 2018 it was decoupled from the JDK and now lives in the OpenJFX project. As of 2026 JavaFX 23 is the latest.

15.2 Where It Shows Up

15.3 Assessment


16. Avalonia 11 - Cross-Platform XAML

16.1 Origins and Today

Avalonia was started in 2013 by Steven Kirk as a .NET cross-platform UI framework. It borrows the WPF XAML pattern but supports Windows, macOS, Linux, iOS, Android, and WebAssembly. As of 2026 Avalonia 11.x is current.

16.2 Who Uses It

16.3 Assessment


17. .NET MAUI 9 - Microsoft's Official Answer

17.1 Origins and Today

MAUI (Multi-platform App UI) shipped in 2022 as Microsoft's successor to Xamarin.Forms, a .NET cross-platform framework. The MAUI 9 line landed alongside .NET 9 in November 2024.

17.2 Assessment


18. SwiftUI on macOS plus Mac Catalyst

18.1 SwiftUI

The declarative UI framework Apple introduced at WWDC 2019. By 2026 - after macOS 15 Sequoia - it is a first-class citizen on the desktop too. The most natural-feeling macOS apps on the App Store are all SwiftUI.

18.2 Mac Catalyst

A compatibility layer that runs iPad apps largely unchanged on macOS, introduced in 2019. It works, but it does not look like a native macOS app - the feeling is more "an iPad running on a big screen".

18.3 Assessment


19. Comet and Lynx - New Camps from 2025 and 2026

19.1 Comet

Comet was launched in 2025 by the former Plasmic team as a desktop builder bundling a component marketplace, code output, and a wide range of backend integrations. As of 2026 it is in late beta. It targets the workflow where "designers start without code, then engineers take over with real code".

19.2 Lynx

Lynx is a cross-platform framework that ByteDance, TikTok's parent company, open-sourced in March 2025. It shares a concept with React Native but includes desktop as a primary surface. Internally ByteDance uses it across parts of its own apps, and external adoption is rising.


20. NW.js - The Classic Electron Alternative

NW.js (formerly Node-webkit) was started in 2011 by Roger Wang at Intel as a desktop framework. It is essentially a sibling of Electron, sharing nearly the same concept, but it integrates Node and Chromium differently. In 2026 it is rare for a new project to pick NW.js, but some Chinese desktop game launchers still ship on it.


21. Bundle Size at a Glance

ToolEmpty diskEmpty memoryStartup
Sciterunder 5 MB30-60 MB0.3 s
NeutralinoJS2-5 MB40-80 MB0.4 s
Tauri 210-15 MB50-100 MB0.5 s
Wails 315-25 MB60-120 MB0.6 s
Flutter Desktop30-50 MB100-150 MB0.7 s
Slint5-15 MB40-80 MB0.3 s
Iced10-20 MB50-100 MB0.4 s
egui5-10 MB40-80 MB0.3 s
Avalonia30-60 MB80-140 MB0.8 s
Electron 34150-300 MB100-250 MB1-3 s
Qt 6.8 (LGPL dynamic)20-40 MB plus Qt runtime60-120 MB0.5 s

22. Native API Reach - How Far Do They Go

A desktop app only delivers real value when it integrates deeply with the OS.

22.1 Frequently Needed System Integrations

22.2 Maturity by Camp

WebView embed tags should be discussed only inside inline backticks - for example <webview> - and never as plain prose. The same goes for <window> and other tag-shaped tokens.


23. Code Signing and Notarization - The Real Distribution Gate

23.1 macOS

23.2 Windows

23.3 Linux

23.4 2026 Trend

GitHub Actions has become the standard build, sign, and ship pipeline. Tauri Action, the electron-builder Action, and flutter-action - workflow templates apply in five minutes.


24. Auto-Update Systems

24.1 Squirrel for Windows and Mac

A classic updater dating back to the Atom days. Electron picks it by default. Delta updates supported.

24.2 electron-updater (part of electron-builder)

Pulls updates from GitHub Releases, S3, or a custom server. The most widely used Electron updater.

24.3 Tauri Updater

The official Tauri updater. Verifies package signatures with minisign.

24.4 Sparkle for macOS

The macOS-only updater that Andy Matuschak has maintained since 2006. Virtually every native macOS app uses it.

24.5 Google Omaha and omaha-server

The update server used by Google Chrome. Open-source omaha-server can be self-hosted.


25. Korea and Japan Desktop App Landscape

25.1 Korea

25.2 Japan


26. Hybrid Patterns - WebView Inside Native

Beyond cross-platform, a single-OS native shell that embeds a webview only for specific screens is common too.

26.1 Windows

26.2 macOS and iOS

26.3 Examples in the Wild


27. Decision Matrix - Narrow It Down with Five Questions

27.1 Question 1 - What Is Your Team's Primary Language

27.2 Question 2 - Must Mobile Share the Same Codebase

27.3 Question 3 - How Important Is Bundle Size

27.4 Question 4 - Is Linux Desktop a First-Class Target

27.5 Question 5 - Any Licence Constraints


28. Anti-Patterns and Traps

28.1 "It Is Electron So Being Heavy Is Fine"

Backwards. Electron apps can be light - VS Code proves it. ASAR packaging, lazy-loaded modules, V8 snapshots, virtual scrolling - the optimisation playbook exists. Picking Electron is not an excuse to skip optimisation.

28.2 "Switching to Tauri Cuts Memory by Two Thirds"

Half true. Tauri's empty app is one third the size, but real apps that lean on Chromium features (WebGL, codecs, DRM) often find that system webviews either do not support them or behave differently. Migration cost can outweigh the memory savings.

28.3 "Flutter Desktop Is Free Because It Reuses Mobile Code"

UI code is reused. System integration code (tray, menubar, shortcuts, window management) all has to be written from scratch. "90 percent code shared" is true, but the remaining 10 percent is what makes a desktop experience.

28.4 "Qt Is Not Free" Is a Misunderstanding

Qt is free under LGPL dynamic linking. Commercial licences are only needed for special cases such as static linking or certain mobile and embedded targets. Fear of Qt licensing should not block a reasonable tool.

28.5 "Newer Tools Are Always Better"

Slint, Iced, Xilem, Lynx are interesting but carry production risk. Fine for prototypes and side projects. For a mission-critical product a tool with at least five years on the clock is safer.


29. Real Migration Stories - What Works, What Hurts

29.1 Linear Desktop - Evaluating Tauri from Electron

Linear has reportedly evaluated migrating to Tauri in 2024. The outcome was "stay on Electron for now". Reasons - Electron runs surprisingly well on macOS Apple Silicon and the migration headcount cost is high.

29.2 KakaoTalk Desktop

For a long time it was a homegrown C++ client, then in the early 2020s it switched to Electron. The outcome is mixed - UI updates ship faster but a number of users complain that memory consumption is now larger.

29.3 Cap Screen Recorder

Started on Tauri 2 from day one. Build size 12 MB, lightweight on Apple Silicon. One of Tauri's flagship case studies.

29.4 1Password 7 to 8

1Password 7 was native, then 8 moved to an Electron base. The decision was about code sharing and feature velocity, but some macOS users still complain that the older version felt better. A clean illustration of Electron's price tag.


30. Conclusion - What Is Your Top Priority

Five-minute decision guide:

  1. Team language is the strongest filter - once it is fixed, candidates already drop by half.
  2. Mobile-shared-codebase is the second filter - if it is mandatory, the field narrows to Tauri 2, Flutter, Compose, MAUI, and Lynx.
  3. Bundle size and memory ceiling are the third filter - if your users tend toward low-spec PCs, Electron is the last resort.
  4. System integration depth is the fourth filter - if tray, notifications, shortcuts, and menubar must all be first-class, the answer is Electron, Tauri, or Qt.
  5. Licence and budget are the fifth filter - depending on your company, Sciter or a commercial Qt licence can be the rational pick.

Five questions usually narrow the field to one to three candidates. From there a thirty-minute proof of concept decides - confirm yourself that startup time, build speed, and packaging simplicity are really as promised.

"What is the best cross-platform desktop framework" is the wrong question. "What are three tools that are reasonable for our team" is the real question, and this article is the map that gets you to the answer quickly.


References

Comments

No comments yet.

Sign in to leave a comment