GitHub Electron (formerly Atom Shell) lets you build cross-platform desktop applications in HTML, CSS, and JavaScript. VS Code, Slack, and Atom — all run on Electron.
Web technologies on the desktop¶
Electron combines a Chromium renderer with a Node.js runtime. The result? A full-featured desktop application with access to the file system, system notifications, native menus, and tray icons — all in JavaScript.
GitHub developed Electron for its Atom editor and subsequently open-sourced it. Today, VS Code, Slack, Discord, WhatsApp Desktop, and hundreds of other applications run on Electron.
Architecture: Main and Renderer process¶
Electron has two types of processes:
// Main process (main.js)
const { app, BrowserWindow } = require('electron');
app.on('ready', () => {
const win = new BrowserWindow({ width: 1200, height: 800 });
win.loadURL('file://' + __dirname + '/index.html');
});
Main process — manages windows, system interactions, and the application lifecycle. One per application.
Renderer process — each window is a separate Chromium renderer. It can use Node.js APIs via IPC communication with the main process.
Advantages and criticism¶
The advantages of Electron are clear:
- A single codebase for Windows, macOS, and Linux
- A vast ecosystem of npm packages
- Rapid prototyping — a web developer can build a desktop app
- Chromium DevTools for debugging
The criticism is also valid:
- High RAM consumption (every app = a Chromium instance)
- Large distribution size (~100 MB minimum)
- Slower startup compared to native applications
- Inconsistent look & feel with the platform
Distribution and updates¶
Electron provides tools for professional distribution:
- electron-packager — packaging into a platform-specific binary
- electron-builder — installers for Windows (NSIS), macOS (DMG), Linux (deb/rpm)
- autoUpdater — automatic updates (Squirrel framework)
- Code signing for trusted distribution
Conclusion: a pragmatic choice¶
Electron is not ideal for every desktop application, but it is a pragmatic choice for teams with web experience. If your application does not require extreme performance or a minimal footprint, Electron will save you months of development compared to native alternatives.
Need help with implementation?
Our experts can help with design, implementation, and operations. From architecture to production.
Contact us