Alternative a Electron per sviluppatori TypeScript
Electron ha reso le app desktop accessibili agli sviluppatori web, e i suoi costi in termini di dimensione e memoria hanno reso “Electron alternative” una query di ricerca permanente. Se TypeScript è il tuo linguaggio, ci sono quattro percorsi realistici nel 2026: restare con Electron, passare a Tauri, costruire binari con runtime embedded con Bun, o compilare in nativo con Perry. Fanno compromessi molto diversi.
I quattro approcci
Electron — la base di riferimento
Distribuisce Chromium e Node.js con ogni app. Il vantaggio è un decennio di maturità in produzione e uno stack UI (HTML/CSS/JS) che il tuo team già conosce — VS Code, Slack e Discord ci girano sopra. Lo svantaggio è il costo di base: installer hello-world di circa 80–150 MB, più processi Chromium e centinaia di MB di RAM a riposo. Solo desktop. Confronto completo Perry vs Electron.
Tauri — UI web nella webview di sistema, backend Rust
Tauri mantiene il frontend web ma elimina Chromium in bundle: la UI viene renderizzata nella webview del sistema operativo (WKWebView, WebView2, WebKitGTK), quindi gli installer si attestano su una manciata di MB. È stabile, ben documentato, e Tauri 2 ha aggiunto iOS/Android. I compromessi: il backend è Rust, non TypeScript — la logica dell'app oltre la UI significa scrivere Rust e attraversare un bridge IPC — e il rendering varia leggermente per piattaforma perché ogni sistema operativo distribuisce una webview diversa. Confronto completo Perry vs Tauri.
Bun — binari a file singolo, nessun layer GUI
Chi cerca “bun electron” di solito vuole la comodità di Electron senza il suo peso. bun build --compile produce un unico eseguibile incorporando il runtime Bun con il tuo TypeScript raggruppato — eccellente per CLI e server, con piena compatibilità npm dato che è letteralmente il runtime. Ma il binario è di circa 60 MB (macOS arm64) fino a oltre 100 MB (Linux/Windows), il codice viene comunque eseguito tramite JIT, e Bun non ha alcun framework UI — un'app desktop ha comunque bisogno di Electron, Tauri o di una libreria webview sopra. Confronto completo Perry vs Bun.
Perry — TypeScript compilato in widget nativi
Perry compila TypeScript ahead-of-time in codice macchina e renderizza la UI tramite veri widget di piattaforma — AppKit, UIKit, GTK4, Win32, Android tramite JNI — senza alcuna webview e senza bridge IPC. Un solo linguaggio per UI e logica, hello world di ~330 KB, binari tipici di 2–5 MB, avvio di ~1 ms, e dieci target inclusi mobile, watch e TV. L'avvertenza onesta: Perry è pre-1.0, la sua API UI è propria (dichiarativa, in stile SwiftUI — non HTML/CSS), e l'ecosistema è giovane rispetto a quello di Electron.
A confronto
| Perry | Electron | Tauri | Bun (--compile) | |
|---|---|---|---|---|
| Linguaggio | TypeScript ovunque | JS/TS + HTML/CSS | Frontend JS/TS, backend Rust | TypeScript |
| Approccio UI | Widget nativi di piattaforma | Chromium in bundle | Webview di sistema | Nessuno (CLI/server) |
| Dimensione hello-world | ~330 KB | ~80–150 MB | ~3–10 MB | ~60–116 MB a seconda della piattaforma |
| Esecuzione | Codice macchina AOT | JIT (V8) | JIT (motore JS della webview) + Rust nativo | JIT (JavaScriptCore) |
| Memoria a riposo | Decine di MB (singolo processo nativo) | Centinaia di MB (Chromium multi-processo) | Inferiore a Electron (webview del sistema operativo) | Tipica di un runtime |
| Mobile / watch / TV | iOS, iPadOS, Android, watchOS, tvOS | No | iOS, Android (Tauri 2) | No |
| Maturità | Pre-1.0 | Oltre un decennio in produzione | Stabile (1.x/2.x) | Stabile |
E React Native o Flutter?
Emergono in ogni discussione su Electron, ma rispondono a una domanda diversa. React Native è mobile-first: il tuo JavaScript gira nel motore Hermes e pilota viste native tramite un bridge, e il supporto desktop esiste solo tramite fork separati della community/Microsoft — non è un sostituto diretto di Electron (Perry vs React Native). Flutter copre desktop e mobile ma significa abbandonare TypeScript per Dart, e disegna i propri widget invece di usare quelli della piattaforma. Se restare in TypeScript è il vincolo, la shortlist realistica per il desktop resta quella delle quattro opzioni sopra.
Quale scegliere?
Resta con lo stack web
Se la tua UI è già costruita in React/Vue/Svelte e hai bisogno oggi di una distribuzione desktop collaudata, Electron resta la scelta a più basso rischio — paghi in dimensione e memoria. Se quel costo ti infastidisce e te la senti di scrivere il backend in Rust, Tauri ti dà gran parte dell'esperienza dello stack web con una frazione dell'ingombro.
Lascia la webview alle spalle
Se quello che vuoi davvero è TypeScript in ingresso, app nativa in uscita — un solo linguaggio, veri widget di piattaforma, binari piccoli e mobile/watch/TV dalla stessa codebase — questo è esattamente il vuoto che Perry esiste per colmare, con la maturità pre-1.0 come prezzo da pagare. E se ti serve solo una CLI o un server come file singolo con rischio di compatibilità zero, --compile di Bun è la scelta pragmatica.