Skip to content
Devgo

Electron

A framework for building desktop apps with web tech (HTML, CSS, JS). Electron bundles Chromium + Node.js — your web app becomes a native desktop app for Windows, macOS, Linux. Used by VS Code, Discord, Slack, Spotify. Easy but memory-heavy.

Created by

GitHub (now OpenJS) · Created Electron for Atom editor in 2013

When to use
  • Desktop apps for web devs.
  • Cross-platform desktop (Win/Mac/Linux).
  • Apps needing web + native features.
  • Prototypes and tools.
When not to
  • Performance-critical apps (use native/Tauri).
  • When memory/size matters.
  • When you need minimal footprint.

Definition

Electron embeds a Chromium browser and runtime into a desktop app. Main process (Node.js) handles OS APIs; renderer process (Chromium) renders UI. One codebase for all platforms. IPC between main and renderer. Auto-updates, system tray, native menus.

Why it exists

To let web developers build desktop apps using the skills they already have, with one codebase for all OSes.

How it works

Main process () manages windows, menus, OS integration. Renderer process (Chromium) renders your web UI. IPC (ipcMain/ipcRenderer) communicates between them. electron-builder packages for each OS. Auto-updater built in.

Scaling limits

Memory heavy (each app bundles Chromium). Apps can be 100-300MB. Security concerns (Node in renderer). Battery drain vs native apps.

Cost shape

Free and open source.

Alternatives

  • Tauri — Smaller bundles, faster, backend, less mature.
  • Native (Swift/Kotlin/Win32) — Best performance, platform-specific.
  • Flutter Desktop — Dart, good performance, smaller desktop ecosystem.

Failure modes

  • High memory usage.
  • Large bundle size.
  • Security (Node in renderer).
  • Battery drain.

,