Electron apps on Mac: the growing footprint

Spotify, WhatsApp, Notion, Slack, Discord, Teams, VS Code, Figma desktop. They all share one thing: each one is a Chromium browser plus a JavaScript bundle. That architecture has the same memory cost on every Mac. Here is a category-wide read on what to expect, and what to do.

Open Activity Monitor on any Mac used for real work and you will find a familiar cast near the top of the memory list. Slack is usually there. Spotify is often there. If you use Notion or Discord, they are there too. What links all of them is not their category - messaging, music, notes, and communication are different things - it is how they are built. They are all Electron apps.

Understanding what that means in practice is the fastest route to understanding why your Mac's memory fills up even when you are not doing anything unusual.

What "Electron" actually means (Chromium plus Node, in plain English)

Electron is a framework created by GitHub that lets developers build desktop apps using web technologies: HTML, CSS, and JavaScript. The appeal is obvious for development teams. A company that already has a web app can wrap it in Electron and ship a desktop version without rewriting everything in Swift, Objective-C, or another native language. One codebase covers Mac, Windows, and Linux. That is why so many large, widely-used apps chose it.

The way Electron achieves this is by bundling two things inside every app it produces. The first is Chromium, Google's open-source browser engine. This is the same engine that powers Chrome, and it is a complete copy, shipped inside the app itself. The second is Node.js, a JavaScript runtime that handles background logic, file system access, and communication between the interface and the operating system.

When you launch an Electron app, you are not launching a lightweight tool that does one thing. You are launching a browser engine and a server-side JavaScript runtime, both of which need to be resident in RAM before the app can do anything at all. The app's actual functionality - playing music, showing messages, displaying notes - sits on top of that foundation.

This is not a flaw in any specific app. It is the architecture. Electron's own documentation is transparent about what it is and how it works. The trade-off was made at the design level, and the memory cost is the predictable result.

The category-wide memory tax (300-700 MB minimum per Electron app, before its own logic)

Every Electron app carries what amounts to a fixed entry fee in RAM. Before it has loaded your playlists, your messages, your documents, or your code, the Chromium engine and Node.js runtime need to be in memory. That baseline sits somewhere between 300 MB and 700 MB, depending on the app and the version.

This is not a number that individual apps can do much about. It is the cost of the framework. Developers can optimise their own code - reduce the size of their JavaScript bundles, manage renderer processes more carefully, be disciplined about what gets loaded at startup - but they cannot eliminate the Chromium base. Some teams have done serious work here: Slack has published engineering posts about memory reduction efforts, and VS Code's team is known for careful performance work. Even with that effort, the floor remains.

A native macOS app - something built with Apple's own frameworks - does not pay this fee. It shares system libraries with the operating system and other native apps. When Mail, Calendar, and Safari are all open, they share large portions of the same underlying frameworks. Electron apps do not share anything with each other or with the system. Each one brings its own browser.

"Every Electron app you install is another Chromium browser running in the background. The math adds up faster than you think."

Real numbers across seven popular Electron apps (rough idle ranges)

These are approximate idle figures observed at a freshly launched state, before heavy use, on Apple Silicon hardware. Real-world usage will be higher, and numbers grow over long sessions.

  • Slack: 400-900 MB at idle with one workspace; 1-2 GB with two or three. For a full breakdown, see Slack on Mac: 2GB RAM and what to do about it.
  • Discord: 300-600 MB at idle. Memory grows as more servers and voice channels become active. Details in Discord on Mac: memory usage explained.
  • Microsoft Teams: 400-800 MB at idle, often higher during calls or with multiple meeting windows open. See Microsoft Teams on Mac: why it uses so much RAM.
  • VS Code: 300-600 MB for a basic project; 700 MB to 1.5 GB with extensions and language servers active. Each extension runs in its own process.
  • Notion: 300-500 MB at idle. The renderer is relatively contained, but it still carries the full Chromium base.
  • Spotify: 250-500 MB at idle - one of the lighter Electron apps in practice, but the framework overhead is the same regardless of whether music is playing.
  • WhatsApp: 300-500 MB at idle. A simple interface, but the Electron base is the same as every other app on this list.

Add any three of these together and you are already at 1-1.5 GB before a browser, Mail, or anything else is open. That is the practical consequence of the architecture.

Why "use the web version" sometimes works, and sometimes does not

The most common advice for reducing Electron app memory use is to switch to the web version. It is correct advice, but it comes with conditions.

When you open Slack, Discord, or Notion in a browser tab, that tab shares your existing browser's Chromium process. It does not run a separate one. The memory saving is real: typically 40-60% less than the desktop app, because you are paying the Chromium cost once (your browser) rather than twice (your browser plus the desktop app). For an 8 GB Mac running several Electron apps, this is a meaningful change.

The conditions where it does not work are predictable. Web apps cannot send notifications when the browser is backgrounded or closed. They cannot provide global keyboard shortcuts that work from any other app. They do not have Dock badges that update independently. If any of those things matter to your workflow, the web version has real trade-offs, not just theoretical ones.

There is also a Progressive Web App (PWA) option for some services. A PWA installs from the browser and gets its own icon and window, but still runs through the browser's engine rather than bundling its own - lighter than the Electron desktop app, more integrated than a tab. Not every service offers a good PWA, but for those that do, it is worth checking.

The honest framing is this: the web version saves memory, reliably. Whether it costs you something you depend on is specific to your workflow.

The honest budget (how many Electron apps you can comfortably run on 8 GB vs 16 GB)

Memory budgeting for Electron apps is straightforward once you accept the base costs.

On 8 GB of RAM, macOS itself uses roughly 2-3 GB. A browser with a handful of tabs adds another 500 MB to 1 GB. That leaves approximately 4-5 GB for everything else. At idle, two Electron apps consume 600 MB to 1.5 GB between them. A third pushes into territory where your Mac starts using the SSD as overflow - a process called memory swapping - and that is when you notice things feeling sticky: apps taking a moment longer to respond, switching between windows feeling slightly hesitant, the fan running more than usual.

The practical ceiling on 8 GB is two active Electron apps, alongside a browser and the usual background tools. If your work genuinely requires three - Slack, VS Code, and Notion, for instance - an 8 GB Mac will show the strain. It is not broken; it is working as designed. But the design was not built for this many Electron apps running in parallel.

On 16 GB of RAM, the picture is more comfortable. macOS and a browser together use 3-4 GB. That leaves 12 GB for everything else. Three or four Electron apps at idle use 1.5-3 GB. There is room for active use, multiple browser tabs, and other tools without hitting the swap boundary. The apps you are not actively using tend to get compressed by macOS over time, freeing up space for whatever is in focus.

The signal to watch is Memory Pressure in Activity Monitor. Open it with Command-Space, type "Activity Monitor", and click the Memory tab. A green graph means the system has headroom. Yellow means it is managing. Red means swapping is active and you will feel it. If yours is regularly yellow or red, your Electron load has exceeded the comfortable budget for your hardware.

Quitting apps you are not actively using is the most direct response - not hiding them, actually quitting with Command-Q. An Electron app you are not using right now is still paying its Chromium rent. For apps like Spotify left running by habit, consider whether the desktop app is necessary or whether the web version would serve you at half the cost.

Common follow-up questions

Why are all Electron apps so heavy on Mac?
Every Electron app bundles a complete copy of Chromium, Google's open-source browser engine, inside itself. That engine alone costs 200-400 MB before the app's own code runs. On top of that, Electron uses Node.js for background logic and spawns multiple renderer processes for different parts of the interface. The result is a memory floor that every Electron app shares, regardless of what the app actually does. A messaging app, a music player, and a note-taking tool all pay the same base cost because they are all, underneath, running a browser.
Is the web version of Slack lighter than the desktop app?
Yes, meaningfully so. Opening Slack at app.slack.com in Safari or Chrome uses roughly half the memory of the desktop app, because the browser tab shares your existing browser's Chromium instance rather than running a separate one. You lose native notifications that work when the browser is backgrounded, global keyboard shortcuts, and the Dock badge. For users on 8 GB Macs where memory is consistently tight, the web version is worth a serious trial.
How many Electron apps can I run on 8GB Mac?
Comfortably: two, sometimes three if they are all freshly launched and lightly used. A realistic setup of Slack, Spotify, and Notion at idle already accounts for 1.5-2.5 GB just from those three apps. Add a browser, Mail, and anything else open and an 8 GB Mac starts showing memory pressure. The practical ceiling is two active Electron apps with a browser open. More than that and you will notice slowdowns, especially later in the day as memory accumulates.
Are there native Mac alternatives to popular Electron apps?
For some categories, yes. Mimestream is a native Gmail client that uses a fraction of the memory Electron-based email clients would. Texts and Beeper offer native messaging clients that wrap WhatsApp and other services. For music, the built-in Music app handles Apple Music natively. For notes, Apple Notes and Bear are native. VS Code has no widely-used native equivalent for general-purpose coding, and Notion has no direct native replacement, though Apple Notes and Craft cover some use cases. Native alternatives exist for maybe half of the popular Electron apps.
Will Apple Silicon make Electron apps lighter?
Apple Silicon runs Electron apps more efficiently in terms of CPU and battery, but the memory footprint stays largely the same. The Chromium engine still needs to be loaded into RAM, and the multi-process architecture still applies. What changes on Apple Silicon is speed: apps launch faster, and the overhead feels less painful because the CPU handles it more quickly. But if you open Activity Monitor and look at memory usage, an Electron app on an M-series Mac uses roughly the same RAM as it does on an Intel Mac running the same app.