ParrotParrot

Why We Built Parrot with Tauri Instead of Electron

The technical reasoning behind choosing Tauri over Electron for a native Mac voice dictation app - performance, binary size, and system access.

KG
Kash GohilCreator of Parrot
Technical
January 5, 2026·6 min read

We chose Tauri over Electron for Parrot because it produces a ~15MB binary (vs. Electron's ~150MB+), uses ~30MB of RAM at idle (vs. ~150MB+), and gives direct access to native macOS APIs through Rust. For a menu-bar app that needs low-latency audio capture and system clipboard access, Tauri's native approach was the clear winner. Here's the full technical breakdown.

Binary size matters for a utility app

Parrot is a utility. You press a hotkey, dictate, and it pastes text. It should feel like a system tool, not a web browser. Electron bundles Chromium, which means your "simple" app ships as a 150–200 MB download.

Tauri uses the system's native webview (WebKit on macOS). The Parrot binary is under 15 MB. That's a 10x difference. For a utility app that lives in your menu bar, this matters - both for download time and for disk space.

Memory usage

Electron apps are notorious for memory consumption. Each Electron app runs its own Chromium instance, typically using 100–300 MB of RAM. When you already have Slack, VS Code, and a browser open (all Electron), adding another 200 MB feels wasteful.

Parrot in Tauri idles at about 30–50 MB. The Rust backend is extremely efficient, and the native webview shares resources with the OS instead of duplicating them. For an app that runs all day in the background, this is a significant advantage.

Rust gives us native system access

Parrot needs to do things that web technologies can't:

  • Audio capture - we use cpal for low-latency microphone access. This is a Rust library that talks directly to Core Audio on macOS.
  • Global hotkey - registering Cmd+Shift+Space system-wide requires native APIs. Tauri's Rust backend handles this directly.
  • Clipboard + auto-paste - after transcription, we write to the clipboard and simulate a paste keystroke using enigo. This needs OS-level access.
  • SQLite - local history, settings, and vocabulary are stored in rusqlite. No Node.js bindings or WASM needed.

In Electron, each of these would require a native Node.js addon or a complex IPC bridge. In Tauri, they're just Rust code running in the same process. Simpler architecture, fewer points of failure.

The frontend is still React

Tauri doesn't mean abandoning the web stack. Parrot's UI is React 19 with TanStack Router, Tailwind CSS, and Vite. The developer experience for the frontend is identical to any React app - hot module replacement, component libraries, the whole ecosystem.

The difference is that instead of Chromium rendering the UI, macOS WebKit does. For our use case, this has no practical downside - we don't need Chrome-specific APIs or bleeding-edge CSS features.

The tradeoff: ecosystem maturity

Electron's ecosystem is larger. There are more tutorials, more plugins, more Stack Overflow answers. Tauri's community is growing fast, but it's younger. We've occasionally had to dig through Rust compiler errors that would have been a simple npm install in Electron-land.

For our team, the tradeoffs were worth it. The performance characteristics of Tauri are exactly what a utility app needs: small, fast, invisible. Parrot should feel like part of the OS, not like another web browser tab.

Would we choose Tauri again?

Yes. For a Mac-first utility app that needs native system access, Tauri is the right choice. The smaller binary, lower memory footprint, and direct Rust access to system APIs have been meaningful advantages in practice, not just on paper.

If we were building a cross-platform app with complex UI requirements (think Figma or Notion), Electron would make more sense. But for what Parrot does - capture audio, transcribe, paste - Tauri is a better fit.

Want to see the result? Join the waitlist to try Parrot when it launches and see how a 15 MB native app compares to the Electron apps on your dock.

Try Parrot

Voice dictation for Mac. Free local mode, Pro from $8/mo.