Blog

Tauri vs Electron for wrapping a website

How it works · · 7 min read

Electron ships its own copy of Chromium and Node.js inside every app, while Tauri uses the web view the operating system already has. For a wrapped site, that decides who keeps the engine up to date and whether the page behaves the same on every computer.

Bundled Chromium and the system web view

Electron's documentation says it works by embedding Chromium and Node.js into its binary, so every Electron app renders with the Chromium version it shipped with. Tauri does not bundle a browser engine. Its apps use the web view already on the system, with TAO creating the window and WRY drawing the web view, and the backend is written in Rust. Its webview reference lists what it uses on each system:

  • macOS: WKWebView, the engine behind Safari, preinstalled and updated with macOS. A macOS version that no longer gets updates also stops getting WebKit updates.
  • Windows: WebView2, built on Edge's Chromium, which updates itself and comes with Windows 11. What WebView2 is explains it in more detail.
  • Linux: WebKitGTK, in whatever version the distribution ships. Tauri's own page says accurate version information is hard to compile on Linux and its table is incomplete.

That last point is worth seeing in numbers. The WebKitGTK site listed 2.54.1 as the latest stable release, dated 2 October 2026, when this was written, and a distribution release from a few years ago may ship a much older one. Tauri's table maps WebKitGTK 2.36 to WebKit 614.1.6 on several Debian and Ubuntu releases.

Who updates the engine

This is the real difference, more than the download size. With a bundled engine, the app's author is the one who updates it. Electron releases a new major version every 8 weeks, in step with Chromium, and its release timeline says the team supports the three latest stable majors. Its security guide asks you to strive for always using the latest available version. For a wrapped site that means your users get Chromium fixes on your release schedule, not Google's.

With a system web view, the user's computer is on the hook. Microsoft says the WebView2 Runtime has a two-week release cadence, in sync with Edge, and an Evergreen app picks up a new runtime when it restarts. WKWebView follows macOS updates. WebKitGTK follows the distribution. A site wrapped this way stays current without you shipping anything, and also changes under you without a release.

What changes for a wrapped site

ElectronTauri
EngineThe Chromium bundled with the appWKWebView, WebView2 or WebKitGTK
Same page on two computersSame engine for the same app versionDepends on the OS, WebView2 or distribution
Engine updatesOnly when the app ships a new releaseWith the OS, WebView2 or the distribution
Browser extensionsA subset of the Chrome extensions API, loaded unpacked and not remembered after the app exitsNot on macOS or Linux; Windows only

In practice, a site that works in Safari usually works in a Tauri window on a Mac, and a site that works in Edge usually works on Windows, but a pass in the browser is a good sign rather than a guarantee. Video and audio codecs follow the engine, so play the media you care about. Extensions you installed in Chrome or Edge do not follow the site into either kind of window.

Two failures show up in Pake's FAQ because of the engine. Some sites put a Cloudflare challenge in front of the page, and the system web view, especially WebKitGTK on Linux, is often flagged by these challenges and loops without passing, even with a custom user agent. On Arch Linux an AppImage built locally can fail to find WebKitNetworkProcess, which the FAQ traces to a Tauri bundler limitation. Both come from using the system web view on Linux, which is the price of not shipping an engine.

Sign-in is a separate matter. Google's OAuth policy is written about embedded user-agents in general, so it does not name an engine, and switching tools is not a way around a provider's refusal. The sign-in guide covers that case.

Check the size yourself

Published size comparisons usually measure an empty app, which tells you little about the one you will build, and installer size is a different thing from memory use. The structural difference is real: Electron's packaging guide places your app folder inside Electron's prebuilt binaries, so the download includes a browser engine. Tauri says a minimal app can be less than 600KB, a statement about an empty app on its own terms.

On Windows the number depends on how WebView2 is delivered. Tauri's Windows installer docs list five modes: the default downloadBootstrapper adds nothing to the installer, embedBootstrapper adds about 1.8 MB, offlineInstaller about 127 MB and fixedRuntime about 180 MB. Microsoft's page on distribution says the Fixed Version binaries are over 250 MB, so treat those figures as an order of magnitude, since each source has its own date.

Memory is governed by the engine and the page. Pake's FAQ says a heavy single-page app such as Gemini, Slack or ChatGPT uses a comparable amount in any WebKitGTK browser such as GNOME Web, and that the small installer is the trade, not a lower runtime footprint. So measure the thing you would hand someone. On a Mac, use Get Info on the .app or du -sh; on Windows, check the installer and then the installed size in Settings, Apps; on Linux, check the .deb, .rpm or AppImage. For memory, open the site and look at Activity Monitor or Task Manager.

When Electron is the right choice

Choose Electron when you need one Chromium version that you have tested on every system: a web feature WebKit lacks, a Chromium-specific switch, or an extension you plan to load. The trade is that the engine only moves forward when you ship a new release. Electron's own security guide warns against loading and executing remote code with Node.js integration enabled, so a wrapper has to keep that off and keep updating.

Choose a system web view when you would rather the engine stay current with the OS, and you are willing to test the site on each system, including the WebKitGTK version on your Linux distribution.

Where Pake sits

Pake is built on Tauri and wraps an existing address; it is not a framework for building your own interface, which is what Electron and Tauri themselves are for. Its apps use WKWebView on Mac, WebView2 on Windows and WebKitGTK on Linux, and Pake documents no setting that swaps in a different engine.

The Pake app for Mac and Windows makes these apps without Node.js or Rust: paste an address on the Create tab, adjust the window and click Create App. On Windows the apps need the Microsoft Edge WebView2 Runtime, which Windows 11 already includes, as described in Install. The CLI also builds for Linux and needs Node.js and Rust:

pake https://example.com --name Example

Coming from an Electron wrapper such as Nativefier, test the site again rather than assuming it behaves the same; Moving a Nativefier app to Pake walks through it, and WebCatalog, Unite, Coherence X and Pake compared covers the other tools that make apps from sites.

FAQ

Is a Tauri app faster than an Electron app?

Nothing cited here measures that. Speed depends on the site and the engine: WebKit and Chromium differ, and a heavy page costs memory in either. Try your own site in both before deciding.

Can I choose Chromium for a Pake app on Mac?

No setting for that is documented. Pake uses the system web view on each platform, so a site that needs Chromium behavior on a Mac is a reason to look at a Chromium-based wrapper.

How do I test a site before wrapping it?

Open it in Safari on a Mac and in Edge on Windows, where the same engines run, and in GNOME Web if you target Linux. Then build the real app and check sign-in, uploads and media.