Electron

Electron is a framework for building desktop applications using JavaScript, HTML, and CSS. As its own documentation puts it, “By embedding Chromium and Node.js into its binary, Electron allows you to maintain one JavaScript codebase and create cross-platform apps that work on Windows, macOS, and Linux.” In practice this means each Electron app ships with a copy of the Chromium browser engine to render its interface and the Node.js runtime to run application logic and reach the operating system, so a single web-style codebase can become a native-feeling app on every desktop platform.

The framework grew out of GitHub’s work on the Atom text editor and was originally called Atom Shell. GitHub’s own announcement years later credited the editor directly: “Atom has served as the foundation for the Electron framework, which paved the way for the creation of thousands of apps, including Microsoft Visual Studio Code, Slack, and our very own GitHub Desktop.” Atom needed a way to run a web-technology editor as a real desktop program, and the shell built to do that was general enough to be split out and reused on its own.

Electron’s architecture mirrors a web browser’s process model. A main process, running in Node.js, manages the application lifecycle and creates windows; each window runs a renderer process built on Chromium that displays the user interface. The two communicate through inter-process messaging, and Node.js gives the application access to the file system, networking, and native modules that a browser sandbox would normally forbid. This division is what lets Electron apps behave like installed software rather than like web pages.

The trade-off is well known: because every app bundles its own Chromium and Node.js, Electron applications tend to be larger on disk and heavier in memory than apps written against a platform’s native toolkit. The framework’s defenders counter that shipping a known browser engine guarantees consistent rendering and lets teams reuse web skills and code, which for many projects is worth the cost. That bargain proved attractive enough that Electron became the substrate for a broad class of modern desktop software, including code editors, chat clients, and developer tools.

Although Atom, the project that gave birth to Electron, was sunset by GitHub in 2022, Electron itself continued as an independent, widely used open-source project. It stands as one of the clearest cases of an internal tool’s plumbing outliving and outgrowing the application it was first built for.