Electron.JS: Both good and bad

For what seems like forever now, Electron seems to be the go-to way to make standalone apps from web languages and frameworks like React, Svelte, and Tailwind.

Microsoft, Spotify, Scratch (and TurboWarp), Discord and many, many more use Electron to make their desktop apps.

Being able to turn your already existing web code into a desktop app may work a lot better in some instances than rewriting your applications to be native, like being able to have a consistent UI, have backends and codebases that work across platforms, and save a lot of development time.

However, nothing is perfect.

Electron is very flexible, mostly because it bundles Embedded Chromium (the engine that browsers like Chrome, Edge and Vivaldi use) and Node.JS.

However, this makes packages very large.

Let’s put it this way:

If your app is small, light, and simple, using Electron will cause the app to bloat up and become, well, not very small, light and simple.

Plus, it uses a lot of resources. Running it on something like a Raspberry Pi at its defaults is very slow, which makes for a very poor user experience. Running many Electron apps at once, well, it may make an even worse user experience.

If you really want a more lightweight app and a better experience for low-end devices, then you might want to look into alternatives like Tauri and Neutralino. Those use webview, which loads your apps in the OS’s built-in web component instead of bundling Chromium like Electron.

However, I’m not saying you should drop and run away from Electron. If you feel like you want a mature framework, then you can go with Electron. However, if you don’t need a whole browser embedded in your app, and you probably don’t, then look into Electron alternatives. Your users will thank you.