Web Dev Tools

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/notarize for 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) or tauri-plugin-sql (Tauri).
  • IndexedDB — works in both shells.
  • Filesystem APIs — Electron's fs, Tauri's tauri-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.

On this page