Hi, I'm Terence. This article is a broader introduction to Electron.
I had wanted for a long time to write a more systematic series about Electron. I wrote some rougher pieces before, but looking back, they were not organized enough. So now the goal is to organize the knowledge more clearly and share more concrete experience from actual Electron development.
This piece is mainly about understanding Electron itself. The framework has now been around for roughly ten years, and it is worth looking at its origins, strengths, weaknesses, ecosystem, real-world cases, and comparisons with other cross-platform frameworks.
Electron began as Atom Shell, created by GitHub developers in 2013. At the time, GitHub needed a cross-platform desktop framework for Atom that could also take advantage of web technologies to build a modern UI.
As the internet expanded, desktop software still remained important. But traditional desktop development usually required separate codebases for Windows, macOS, and Linux, which increased development and maintenance cost.
At the same time, HTML5, CSS3, and JavaScript became much more powerful. Developers increasingly wanted to build modern UIs with web technologies and benefit from the speed and tooling of the web ecosystem.
That created clear demand for a strong cross-platform desktop framework, and Electron arrived at the right time.
More background:
https://www.electronjs.org/blog/electron
Electron's biggest strength is still its cross-platform model. Developers write once, and Electron absorbs much of the difference between Windows, macOS, and Linux.
Electron applications use HTML, CSS, and JavaScript for the UI layer. Teams can bring in common frontend frameworks such as:
That improves both development speed and code quality.
Electron combines Chromium and Node.js, so the app can use web technologies for UI while still accessing:
Electron has rich documentation, examples, and an active community, which makes problem-solving and pattern discovery much easier.
Because Electron runs a full Chromium instance, applications often use more memory and CPU than lighter alternatives. This is especially noticeable on older or low-spec devices.
Bundling Chromium and Node.js makes Electron applications comparatively large. Even simple apps may easily end up in the tens or hundreds of megabytes.
Electron apps need to treat web-style security seriously. Common concerns include:
Developers need to use features like:
contextIsolationsandboxContent Security PolicyThe ecosystem is one of Electron's biggest advantages. Since Electron sits on top of Node.js, a huge number of open-source tools have grown around it.
Some common categories include:
There are many Electron applications, both in China and internationally.
More examples:
https://www.electronjs.org/apps
On macOS, a quick way to check whether installed apps use Electron:
for app in /Applications/*; do;[ -d $app/Contents/Frameworks/Electron\ Framework.framework ] && echo $app; doneHere is a rough comparison table between Electron and several other desktop cross-platform options:
| Feature | Electron | NW.js | Proton Native | Tauri | Flutter Desktop |
|---|---|---|---|---|---|
| Development language | JavaScript, HTML, CSS | JavaScript, HTML, CSS | JavaScript, React | Rust, JavaScript, HTML, CSS | Dart |
| Framework size | Large | Medium | Medium | Small | Large |
| Performance | Medium | Medium | Medium | High | High |
| Cross-platform support | Windows, macOS, Linux | Windows, macOS, Linux | Windows, macOS, Linux | Windows, macOS, Linux | Windows, macOS, Linux |
| Core stack | Chromium, Node.js | Chromium, Node.js | React, Node.js | Rust, WebView | Flutter Engine |
| Ecosystem | Very active | Active | Stagnant | Emerging | Active |
| Learning curve | Easy to start | Easy to start | Requires React knowledge | Requires Rust and frontend knowledge | Requires Dart |
| Auto-update | Built in | Manual | Manual | Manual | Manual |
| Native access | Via Node modules | Via Node modules | Via Node + native modules | Via Rust native modules | Via plugins + native modules |
| Dev experience | Good with setup | Good with setup | Good with setup | Good with setup | Built-in hot reload |
| Packaging | Electron Builder, Forge | nw-builder | Manual setup | Tauri tooling | Flutter build tools |
| Typical scenarios | Chat apps, IDEs, productivity tools | Chat apps, productivity tools | Small React utilities | Lightweight, performance-sensitive tools | Cross-platform mobile + desktop |
Electron is a powerful cross-platform framework, and its impact on frontend developers has been significant. It gave many frontend engineers a path into desktop application development and expanded the boundary of what web-oriented engineers could build.
It is not automatically the best framework for every case, because the best tool still depends on the actual product and technical constraints. But Electron remains a very important option: practical, mature, and backed by a remarkably strong ecosystem.