Always running, or opened when you need it
An app you launch, use and quit gets judged on how well it does the job. It can take a second to start and hold a few hundred megabytes while open. You will forgive both, because the alternative is not having the feature.
An app that sits in your menu bar from login to shutdown is judged differently, and it should be. It holds memory while you are doing something else, and it shapes how the whole machine feels. A menu bar utility has no business sitting at 300 MB. That opinion is what the rest of this rests on.
The always-running set is small and specific. Clipboard manager, window manager, launcher, screenshot tool, menu bar organiser, system monitor. Six processes with your login items, and every megabyte in them is permanent.
Electron is a reasonable trade, and here is when
Three platforms, one team. If your users are on macOS, Windows and Linux, and you have four engineers, Electron is the sensible answer. The alternative is three codebases and three sets of platform bugs, and the third one never gets finished.
Complex UI you already built for the web. VS Code, Slack, Discord and Notion are Electron apps that do a great deal of work. They render documents, editors and rich chat, and they are the same on every desktop your team uses. Rewriting that in AppKit for one platform would take years and ship a worse product.
A shared web app underneath. When the desktop app is a view onto the same service the browser shows, sharing the rendering layer is honest engineering rather than laziness.
In my own app every control is AppKit and SwiftUI. The reason to care is not visual purity. It is that the window inherits the system's text handling, keyboard behaviour and accessibility support without me reimplementing any of it.
The part nobody advertises: native gets you the platform's own conventions for free, and it also gets you the platform's own bugs. Both are part of the deal.
One more point in Electron's favour. A well-built Electron app beats a badly built native one every time. Native is not a quality guarantee. There is plenty of slow, ugly, badly behaved AppKit software, and I have shipped some of it during development.
Where the trade breaks
Bundling a browser engine to draw a list of ten rows is where I stop defending it. A clipboard manager reads the pasteboard, stores strings and images, and shows a small window. None of that needs a rendering engine built for arbitrary web pages. The engine also has a memory floor before your code does anything.
The floor is the problem, not the peak. A browser engine loaded into a process that never quits holds its memory all day, regardless of whether you copied anything. Multiply by the five or six utilities people actually run, and the machine feels different.
Startup matters more than it sounds for this class of app too. You press a shortcut and expect the window immediately. That is a hard target when the first thing that has to happen is a JavaScript runtime waking up.