Introduction
Some of the most-used desktop apps — VS Code (the batch 17 post), Slack, Discord, Figma's desktop app — are not written in native desktop languages at all. They are web apps wrapped in Electron, GitHub's framework (released in 2013) that lets developers build desktop software with HTML, CSS, and JavaScript. One codebase, three operating systems, and a team that already knows web development: that combination explains Electron's spread, and its controversies.
Main process, renderer process, and the bridge between them
Electron apps have two kinds of process. The main process (one per app, running Node.js) owns the operating system side: windows, menus, file access, and system trays. Each window runs a renderer process — essentially a Chromium browser tab — that displays the HTML interface and runs the frontend code. The two talk through inter-process communication (IPC): the renderer asks ("open a file dialog"), the main process acts and replies. A minimal main-process file shows the shape:
const { app, BrowserWindow } = require("electron");
function createWindow() {
const win = new BrowserWindow({ width: 800, height: 600 });
win.loadFile("index.html");
}
app.whenReady().then(createWindow);
That is the whole pattern: Node.js on one side, a browser window on the other, and web skills doing both jobs. Frameworks like React, Vue, or Svelte (all covered earlier) commonly power the renderer side, which is why web teams adopt Electron so easily.
The honest trade
Electron's trade is resource use: every Electron app ships its own Chromium and Node runtime, so apps are large downloads and heavier on memory than native apps — the classic complaint about Slack or Teams eating RAM. Startup is slower, and truly native feel (system animations, accessibility details) takes extra work. The rule of thumb: Electron when one web team must ship on Windows, macOS, and Linux quickly; native development (or lighter wrappers like Tauri) when performance, size, or platform feel matter most.
Takeaway
Electron builds desktop apps from web technology: a Node main process for the system side, Chromium renderer windows for the interface, and IPC between them. It trades leanness for reach — and that trade put web developers on the desktop.
Originally published at https://practicaldevblog.blogspot.com/2026/10/electron-explained-desktop-apps-built.html
Top comments (0)