All posts

The case against Electron

Every note-taking app I've used felt slow in ways that were hard to pin down. Not seconds-slow — milliseconds-slow. A subtle lag between pressing a key and seeing text appear. A menu that takes a beat to open. Scrolling that doesn't quite keep up.

The common denominator: Electron.

What Electron costs you

Electron wraps a full Chromium browser around your app. For a note editor, that means:

  • 200+ MB baseline memory for an empty window
  • JavaScript's garbage collector pausing your typing
  • IPC overhead between the renderer and the "backend" (which is also JavaScript)
  • A .dmg that's 150 MB before you've written a line of code

It works. Plenty of great apps use it — VS Code, Obsidian, Notion. But for a tool that should feel like an extension of your keyboard, the overhead adds up.

The Tauri alternative

Glifo is built with Tauri. Instead of bundling Chromium, Tauri uses the system webview — WKWebView on macOS. The difference:

ElectronTauri
App size~150 MB~8 MB
Memory (idle)~200 MB~40 MB
BackendNode.jsRust
WebviewBundled ChromiumSystem (WKWebView)

The backend is Rust, which means file I/O, git operations, and markdown parsing all happen at native speed. No event loop contention, no GC pauses, no "this might be async" surprises.

What we get for free

Using the system webview means we get macOS integration that Electron apps have to fight for:

  • NSVisualEffectView — real frosted glass blur, not a CSS approximation
  • Native title bar overlay — traffic lights in the right place, window dragging that just works
  • Keychain integration — GitHub tokens stored in the macOS Keychain, not in a plaintext config
  • System theme detection — dark/light mode changes propagate instantly

The trade-off

WKWebView isn't Chromium. Some CSS features behave differently. You can't use Chrome DevTools in production. And cross-platform support requires testing on each platform's webview.

For Glifo, that's fine. We're macOS-first by design. The webview is fast, the integration is deep, and the app weighs less than a typical Slack update.


Native performance isn't about benchmarks. It's about the feeling that nothing stands between you and your notes.