Why is Claude an Electron app?
Source: Hacker News
If code is free, why aren’t all apps native?
The state of coding agents can be summed up by this fact.
Claude spent $20 k on an agent swarm implementing (kinda) a C‑compiler in Rust, but desktop Claude is an Electron app.
If you’re unfamiliar, Electron is a framework for building desktop applications using web tech—HTML, CSS, and JavaScript. It lets you build one desktop app that runs on Windows, macOS, and Linux, and it allows developers to reuse existing web‑app code. Many apps you probably use every day are built with Electron: Slack, Discord, VS Code, Teams, Notion, and more (list on Wikipedia).
Downsides of Electron
- Size: Each app ships its own Chromium engine, so the minimum size is usually a few hundred megabytes.
- Performance: Electron apps can feel laggy or unresponsive.
- Integration: They don’t integrate as tightly with OS‑specific features.
These issues can be mitigated with clever development and platform‑specific code, but they rarely are. The benefits—single codebase, cross‑platform reach, and the familiarity of web technologies—often outweigh the drawbacks for many teams.
The promise of coding agents
Coding agents excel at cross‑platform, cross‑language implementations when given a well‑defined spec and test suite (example article). In theory, this could make Electron’s advantages obsolete: instead of writing one web app, we could write one spec and let agents generate native code for each platform, delivering snappy, performant apps from small, focused teams.
Why we’re still using Electron
Even Anthropic, a leader in AI‑assisted coding, still ships Claude as an Electron desktop app—slow, buggy, and bloated. The reasons include:
- The “last 10 %” problem – Agents are great at the first 90 % of development, but handling edge cases, polishing, and ongoing maintenance remain hard, tedious, and require substantial human guidance.
- Real‑world complexity – Once software meets real‑world usage, messy and unexpected scenarios arise, demanding human decisions that agents can’t fully automate.
- Support surface area – Producing three separate native apps (macOS, Windows, Linux) triples the bug‑fixing and support workload. Electron’s single wrapper mitigates many platform‑specific quirks.
Anthropic’s Rust‑based C compiler illustrates the challenge:
The resulting compiler has nearly reached the limits of Opus’s abilities. I tried (hard!) to fix several of the above limitations but wasn’t fully successful. New features and bug‑fixes frequently broke existing functionality.
The compiler is impressive given the time and team size, but it is largely unusable. That last mile is hard.
Bottom line
A robust test suite and spec could enable a fully native Claude desktop app, but the overhead of polishing that final 10 % and the increased maintenance burden remain significant. For now, Electron still makes sense: it offers rapid cross‑platform delivery while coding agents handle the bulk of development. The “last mile” of development and the expanded support surface area keep Electron relevant—for the time being.