Creuto is now an OpenAI Select Partner Read More
Electron vs Tauri, after Discord chose GPUI instead: Electron's 8-week upgrade cycle against Tauri's per-OS web views, and when to stay put.

Discord is leaving Electron, and the replacement is not Tauri. On 4 November 2026 Discord's CTO Stanislav Vishnevskiy posted that Electron and React Native are going away, adding: "it's not Tauri, it's GPUI." If you are weighing electron vs tauri for your own desktop app, that is the useful part. The company with the most public Electron memory complaints looked past the obvious alternative. By the end of this post you will know what each path costs in upgrades, rendering risk and rewrite effort, and when staying put is the right call.
Early coverage framed the news as a Tauri switch, and Vishnevskiy corrected it in the same post: the new client is Rust on GPUI. GPUI describes itself as a hybrid immediate and retained mode, GPU-accelerated UI framework for Rust, built by the team behind the Zed editor. It does not render through a web view at all, which is the whole point of Tauri.
Here is what was actually announced, as of 6 November 2026:
| Item | What Discord said |
|---|---|
| Desktop | Electron replaced by a Rust client on GPUI (CTO post) |
| Mobile | React Native goes; "mobile keeps native UI but shares app code with desktop via Rust" (CTO post) |
| Web | An HTML renderer with application logic in Wasm instead of JavaScript (Roboin) |
| Rust history | Used at Discord since 2018, in infrastructure, voice and parts of the current client (CTO post) |
| Release date | None. Discord hopes "to get it into testing with users soon" (CTO post) |
Discord also maintains its own GPUI patches and has said it is interested in sending them upstream, according to Roboin. That detail matters later: GPUI's own site says that for the near future, GPUI is tied to Zed, so contributions go through the Zed repository. Discord is adopting a framework whose roadmap belongs to another product.
The number travelling with this story is "up to 14 times lower memory usage", from eTeknix. It sets a screenshot Vishnevskiy shared, showing roughly 290 MB for the rebuilt client, against reports that the current client has used more than 4 GB "in certain situations". eTeknix itself says it is unclear whether the two were measured under the same conditions.
They almost certainly were not. 4 GB is the threshold of a Discord experiment that restarts the Windows app when RAM use exceeds 4GB, and only after the app has run for an hour, the user has been inactive for 30 minutes and no call is active. The same PCWorld report puts typical usage at around 1 GB. So the honest comparison is an early, unreleased build against a leak ceiling, not against a normal session. Treat Discord's move as an announcement, not a result.
The underlying cost is real, though. Electron inherits Chromium's multi-process design: one main process running in a Node.js environment, plus a separate renderer process for each open window. Every Electron app ships and runs its own browser. That is the memory and download-size complaint your users are making, and it is the thing Tauri was built to remove.
Strip away the benchmarks and the electron vs tauri decision comes down to who owns the rendering engine. Electron bundles Chromium, so you own it, you test against one engine, and you must keep upgrading it. Tauri borrows the engine the operating system already has, so it is small, but you test against several engines you do not control.
| Axis | Electron | Tauri 2 | Native Rust (GPUI, Discord's path) |
|---|---|---|---|
| Rendering engine | Bundled Chromium | System web view per OS | GPU-rendered, no web view |
| Back-end language | Node.js main process | Rust, with Swift and Kotlin for plugins | Rust |
| Who updates the engine | You, every major release | The OS vendor or Linux distro | You and the framework's owner |
| Front-end code reuse | Any web framework | Any web framework | UI rewritten |
| Size floor | Ships a browser | "Less than 600KB" for a minimal app | Not published |
The Tauri figures come from its own documentation: a minimal Tauri app can be less than 600KB, and it uses "languages such as Rust, Swift, and Kotlin for backend logic". Neither Electron nor Tauri publishes first-party memory figures, so any RAM comparison you read is a third-party benchmark of a specific app. Build a spike of your own heaviest screen before you trust one.
Electron's cadence between major versions is 8 weeks, and the Electron team supports only "the latest three stable major versions". A major bump means a Chromium upgrade, a Node.js major or a breaking API change, and the versioning policy notes that "most Chromium updates will be considered breaking".
On the release schedule as of today, Electron 45 went stable on 20 October 2026 with Chromium M156, and 44 and 43 are the other supported lines. Electron 42 reached end of life on 20 October. Electron 46 is tentatively due on 5 January 2027, which is also the tentative end-of-life date for 43. A team that shipped on 43 when it went stable on 29 June 2026 gets about six months before it is unsupported.
Each of those upgrades is a new signed build through your release pipeline, with its own regression pass. Signing has its own deadlines too; our note on Developer ID certificate expiration covers the macOS side. Budget the treadmill as recurring engineering time, not as a one-off.
Tauri renders through a different web view on each platform, and its web view versions page is candid about what that means:
In practice your Windows users run Chromium, your Mac users run Safari's engine at whatever version their OS shipped, and your Linux users run whatever their distro packaged. The Tauri docs point you to caniuse.com to check feature support per engine. A CSS feature or web API that works in your Chromium-based dev build can fail on an older Mac, and you find out from a support ticket. If you go this way, cross-engine visual and end-to-end tests become part of every release; that is work our QA and automation team sets up before a migration, not after.
The strongest case for Tauri is still a good one. Tauri 2.0 went stable on 2 October 2024 with iOS and Android support, and it replaced the old allowlist with permissions and capabilities that attach to specific windows and web views. Because it uses web technologies, virtually any frontend framework is compatible, so a React UI can usually move across. What does not move is your Electron main process: Node.js code that talks to the file system, tray, auto-update and native modules has to be rewritten in Rust or replaced with plugins. That rewrite is where the cost of migrating from Electron to Tauri actually sits.
Discord can take the GPUI route because it already had the pieces. It has run Rust in production since 2018, including in parts of its current client, and the rewrite retires two frameworks at once: Electron on desktop and React Native on mobile, with shared Rust app code underneath (CTO post). One codebase replacing two is a payoff very few 50-300 person companies can claim.
It also carries risks a smaller team cannot absorb. GPUI's roadmap is tied to Zed, Discord is carrying its own patches, and Roboin notes that GPUI did not support CPU-based rendering at the time of writing. There is no release date. Full rebuilds are slow and expensive even when the motive is clear, as Swiggy's hybrid to native app migration showed on mobile.
The fair counter-argument is that native is where the memory and responsiveness ceiling is highest, and if your desktop app is the product, that ceiling is worth paying for. That holds when you have Rust engineers already, a UI you were going to redesign anyway, and the budget to run old and new clients in parallel. Without all three, a native rewrite trades a memory complaint for a multi-year delivery risk.
Staying on Electron is the right call more often than the headlines suggest. It fits when:
Move to Tauri when size and idle memory are the dominant complaint, the UI is standard web, the main process is thin, and you can afford to test on WebKit as well as Chromium. Its mobile targets are a bonus if you also want phone apps, though a dedicated mobile stack is often the better fit; our React Native vs Flutter verdict covers that choice. Go native only on the Discord conditions above.
The cheapest step is a two-part spike: profile where your Electron app's memory actually goes, and port one heavy screen to Tauri and run it on WebView2, WKWebView and WebKitGTK. That tells you whether the problem is the framework or the code, and what the Tauri rendering gap looks like on your own UI. Our web app development team works in React, TypeScript and Node.js, the layers an Electron or Tauri client is built from, and can scope that spike against your codebase so the stay, move or rebuild decision rests on your numbers rather than Discord's screenshot.
Discord is not moving to Tauri. CTO Stanislav Vishnevskiy said on 4 November 2026 that the new client is written in Rust on GPUI, the GPU-accelerated UI framework from the Zed team. Electron and React Native are both being retired, and no release date has been announced.
Tauri does not render identically everywhere because it uses each platform's own web view: WebView2 on Windows, WKWebView on macOS and iOS, WebKitGTK on Linux and the system WebView on Android. Feature support depends on each engine's version, so teams need to test on every target.
Electron ships a new major version every eight weeks and supports only the latest three stable majors. A version therefore stays supported for roughly six months after its stable release, and most major upgrades include a Chromium update that Electron treats as a breaking change.
A product team should usually stay on Electron when its main process holds substantial Node.js logic, when identical rendering across Windows, macOS and Linux matters, or when memory problems come from its own code rather than the framework. In those cases a migration adds cost without fixing the complaint.
Tauri 2.0 has been stable since 2 October 2024, with iOS and Android support and a permissions and capabilities security model. Whether it suits a given product depends mostly on how much Node.js main-process code must be rewritten in Rust and how much cross-engine testing the team can sustain.
Ready to take the first step towards unlocking opportunities, realizing goals, and embracing innovation? We're here and eager to connect.