What is Electron?
Electron is an open source framework for building desktop apps for Windows, macOS, and Linux with web technologies.
Desktop framework. Updated by DATAL Projects
- Made by
- GitHub, now the OpenJS Foundation
- First released
- 2013, as Atom Shell
- License
- MIT
- Written in
- C++, JavaScript and TypeScript
- Runs on
- Windows, macOS and Linux
- Official site
- electronjs.org
What Electron is
Electron is an open source framework for building desktop apps for Windows, macOS, and Linux with web technologies. One codebase produces apps for all three desktop systems, reusing web skills and components.
Electron was created by Cheng Zhao at GitHub. It started in 2013 under the name Atom Shell, as the base for GitHub's Atom code editor. It was released as open source in 2014 and renamed Electron in 2015.
Version 1.0 arrived in 2016, and in 2019 the project joined the OpenJS Foundation, the same group that hosts Node.js. Well known apps built with Electron include Visual Studio Code, Slack and Discord.
How Electron works
Electron combines two existing projects into one package. Chromium, the open source browser behind Google Chrome, draws the user interface. Node.js gives access to the computer, such as files and the network. You build the screens with HTML, CSS and JavaScript, the same way you would build a website.
An Electron app has two kinds of processes. The main process starts the app, creates windows and talks to the operating system, for things like menus, the system tray and file dialogs. Each window runs a renderer process, which displays your web page. The two sides send messages to each other through IPC, short for inter-process communication.
For safety, a preload script sits between the web page and the system and exposes only the functions you choose. When the app is finished, tools such as Electron Forge or electron-builder package it into an installer for each operating system. Chromium is bundled inside every app, which is why Electron apps are larger than native ones.
Key features of Electron
Cross-platform builds
One codebase produces apps for Windows, macOS and Linux. Most code is shared, with small adjustments per system.
Web technology UI
Interfaces are built with HTML, CSS and JavaScript, and any frontend framework such as React or Vue can be used.
Native system access
APIs cover menus, notifications, the system tray, file dialogs, keyboard shortcuts and more.
Node.js built in
The main process can use Node.js modules and npm packages to read files, run local databases or talk to hardware.
Automatic updates
Electron includes an update module so installed apps can download and apply new versions.
Consistent rendering
Because the same Chromium version ships inside the app, the interface looks and behaves the same on every computer.
When to use Electron
A good choice for
- Desktop versions of an existing web app
- Teams with web skills that need a desktop product
- Internal business tools that must work offline
- Apps that need the same look on Windows, macOS and Linux
- Editors, dashboards and chat or productivity tools
Pick something else when
- Apps where a small download size and low memory use are top priorities
- Tiny utilities, where a bundled browser is more than the job needs
- Mobile apps, since Electron targets desktop systems only
- Demanding 3D games, which are better served by a game engine
Electron compared with alternatives
Electron vs Tauri
Tauri also builds desktop apps with a web interface, but uses the web view already installed on the operating system and a backend written in Rust. Its apps are usually much smaller and lighter. Electron is more mature, bundles its own browser for consistent behavior, and lets the whole app stay in JavaScript.
Electron vs .NET desktop apps
Frameworks such as WPF, WinUI and .NET MAUI build native desktop apps in C#. They tend to use fewer resources and fit Windows especially well. Electron is the easier route when the team and the existing code are web based.
Electron vs A web app in the browser
A normal web app or progressive web app needs no install and updates instantly. Electron is worth it when you need deeper system access, offline files, or a dedicated window and icon on the desktop.
How to start learning Electron
- 01Make sure you are comfortable with HTML, CSS, JavaScript and the basics of Node.js.
- 02Install Node.js, then create a starter app with npm init electron-app@latest my-app.
- 03Follow the tutorial in the official docs at electronjs.org to understand the main process, renderer process and preload script.
- 04Add one native feature, such as a file open dialog, and pass the result to the page through IPC.
- 05Build a small project such as a notes app that saves to a local file, then package it into an installer.
What Electron costs
Electron is free and open source under the MIT license, and you can sell apps built with it. Costs can come from code signing certificates and developer accounts needed to distribute trusted apps on Windows and macOS. Those are set by the platform owners, not by Electron.
How DATAL Projects uses Electron
Electron is part of our software development work in the Philippines. Common uses:
- Cross-platform desktop apps
- Internal business tools
- Offline-capable apps
Common questions about Electron
What is Electron used for?
Electron is used to build desktop apps for Windows, macOS and Linux using web technologies. Visual Studio Code, Slack and Discord are well known examples.
Is Electron free?
Yes. Electron is open source under the MIT license and free for commercial use.
Why are Electron apps so large?
Each Electron app ships with its own copy of Chromium and Node.js. That guarantees consistent behavior but adds to the download size and memory use.
Electron vs Tauri: which should I use?
Choose Electron if you want a proven framework, an all-JavaScript codebase and identical rendering everywhere. Choose Tauri if small app size and low memory use matter more and you are willing to work with some Rust.
Is Electron hard to learn?
If you already build websites, most of your skills carry over. The new ideas are the split between main and renderer processes and how to pass messages between them safely.
Need a project built with Electron?
Tell us what you need. We reply with a scope, a price, and a timeline.
Start a Project
