Technology

In Defense of Electron

Electron has flaws like resource usage and a lack of platform conventions, but it makes up for it in options for developers and users.

Electron is a common target for criticism, and some of that criticism is justified. Electron apps tend to use more memory than native applications because each one bundles a full Chromium runtime. They often consume more CPU, ship larger binaries, and can feel less responsive than applications built with the UI frameworks provided by macOS or Windows.

But there is a deeper issue for many users that is not just performance. Electron apps don’t inherently have the conventions and behaviors of the operating system they runs on. And maybe an app built with Electron means the developer just doesn’t care about the platform or maybe even the users.

When 1Password moved to its Electron-based version 8 Jason Snell captured this sentiment succinctly:

The root problem is this: 1Password, originally a Mac-forward software developer, has simply decided that the Mac isn’t important enough.

Cohesive Computing

For decades, platform vendors promised that windows, buttons, sliders, menus, and text fields would behave consistently across the system. Electron breaks this promise by importing a web-based interaction model that exists outside the platform’s native component set. And when an app brings its own UI elements, users have to relearn even the basics of how interface components behave.

But Electron didn’t caused this shift. The erosion of cohesive platform identity began long before Electron appeared.

In the late 2000s, skeuomorphism surged in popularity, especially in Apple’s own first-party applications. Designers started to prioritize visual novelty over UI consistency, sometimes mimicking physical objects with interactions that made little sense on a desktop computer.

Today, when it comes to providing a cohesive toolkit, Apple isn’t giving clear signs about which of their UI frameworks to use for a new app. Should you start a new Mac app with AppKit, SwiftUI, or UIKit with Catalyst or just allow running your iOS app on an Apple Silicon Mac? And the cohesiveness continues to drift with iOS conventions sometimes at odds with macOS conventions.

Microsoft isn’t doing any better with XP and Aero controls, Metro conventions and now Fluent controls and conventions. Windows 11 now has Project Reunion as an SDK to try to unify things, but Windows 11 is still a mix of different platform conventions, styles, and whole apps going back to Windows 98 (check out the Disk Cleanup UI).

Freedom From Platform Gatekeepers

Despite its flaws, Electron introduced something valuable: independence from the platform vendors.

Developers create new apps and ship new features simultaneously on macOS, Windows, and other platforms like Linux without maintaining three codebases. Electron breaks the old model where only platforms with large market share received commercial software.

This shift is one reason the Mac and Linux now hosts applications that likely wouldn’t have been built for it otherwise. Visual Studio Code, Slack, Figma Desktop, and numerous productivity apps and developer tools reached macOS precisely because Electron turned the Mac and Linux into a cross-compile target instead of a separate engineering effort. Electron, for all its issues, expanded the range of available software on platforms that historically struggled with market share.

Gateway to Linux

The rise of Electron also makes it easier for users to switch operating systems.

When your most important productivity tools run nearly identically on macOS, Windows, and Linux, the operating system becomes less of a lock-in mechanism. Users who once depended on proprietary native software can now move to Linux and retain access to the same tools like 1Password, VS Code, Figma, Slack, Postman, and countless others. Electron gives Linux something it lacked for decades: a practical ecosystem of commercial desktop applications with consistent distribution and support.

If you no longer lose your workflow when you switch platforms, the choice of operating system becomes more competitive and more user-driven.

Electron is far from perfect. It consumes more memory than a native app, and it accelerates the decline of cohesive platform-specific interaction models But Electron also breaks the monopolies of platform vendors.