Desktop Apps
Building native desktop apps from web tech.
The big two
- ★ Tauri 2 — Rust shell + your web frontend. Tiny binaries (~3-10 MB), uses the system WebView (WebView2 on Windows, WebKit on macOS, WebKitGTK on Linux). Plugin system for native APIs. Now also supports iOS / Android. The default for new desktop apps in 2026.
- ★ Electron — Chromium + Node bundled. Big binaries (50-150 MB), but battle-tested by Slack, VS Code, Discord, Figma, Notion, etc. Best when you need bundled Chromium (consistent rendering across OSes) or specific Node APIs.
Lighter alternatives
- Wails — Go shell + system WebView; Tauri's Go-flavored cousin. Fast, small.
- Neutralino — JS-only, system WebView, no native runtime needed. Tiny, less powerful than Tauri.
- NodeGUI — Qt bindings; native widgets, not WebView-based. Niche.
- WebUI — minimal C library that opens a system WebView pointing at your app.
Cross-platform UI inside the shell
You build your UI with whatever you'd use for web — React, Svelte, Solid, Vue. The shell (Tauri/Electron) just renders it.
Auto-update
- ★ Tauri's built-in updater — signed releases, GitHub-friendly.
- electron-updater — the standard for Electron.
- Squirrel (Mac/Windows) — older Electron auto-updater.
Code signing / notarization
- ★ Tauri Signer + Apple notarization + Windows code-signing certs.
@electron/notarizefor Electron.- EV code signing is the painful, expensive bit on Windows; nothing has fixed it.
Storage / DB inside desktop apps
- SQLite via
better-sqlite3(Electron) ortauri-plugin-sql(Tauri). - IndexedDB — works in both shells.
- Filesystem APIs — Electron's
fs, Tauri'stauri-plugin-fs.
When to pick which
- Want smallest binary, modern stack, willing to use Rust for native code: Tauri 2.
- Want broadest ecosystem, mature tooling, cross-OS perfect rendering, don't mind a 100MB binary: Electron.
- Already a Go team: Wails.
- JS-only desktop with no native code: Neutralino.
- You need real native widgets, not WebView: NodeGUI or rewrite in Swift / Kotlin / C# / Avalonia.
Pick this if…
- Default new desktop app: Tauri 2.
- Drop-in port of an existing complex Electron app: stay on Electron.
- Tiny utility, wide OS reach: Neutralino.