58 puntos por GN⁺ 2026-02-24 | 5 comentarios | Compartir por WhatsApp
  • Framework para apps de escritorio basado en TypeScript que usa Bun en el proceso principal y Zig para los bindings nativos
  • Compatible con macOS, Windows y Ubuntu, y genera automáticamente instaladores, actualizaciones automáticas y artefactos de parches diferenciales
  • Ofrece un conjunto completo de funciones de escritorio como control de ventanas, menús, atajos, portapapeles, cuadros de diálogo y almacenamiento de sesión, además de una webview estable basada en OOPIF
  • Su arquitectura interna aprovecha el FFI de Bun y su modelo de memoria compartida para mantener la eficiencia incluso en entornos multiproceso
  • Fue desarrollado directamente durante 2 años por un desarrollador que experimentó las limitaciones de Electron y Tauri, aprendiendo Zig, C, C++ y Objective-C
  • Su objetivo es ofrecer un flujo de trabajo integrado que permita escribir código en 5 minutos y desplegar en 10 minutos

Resumen y objetivos del proyecto Electrobun

  • Estructura que ejecuta el proceso principal con Bun, empaqueta el TypeScript de la webview y escribe los bindings nativos con Zig
  • Tanto el proceso principal como la webview se escriben en TypeScript, pero manteniendo el aislamiento (isolation) entre procesos y ofreciendo comunicación RPC rápida y tipada
  • Tamaño aproximado del bundle autoextraíble: 12 MB (usando la webview del sistema; en su mayor parte corresponde al tamaño del runtime de Bun)
  • Con actualizaciones diferenciales basadas en bsdiff, el tamaño del parche puede reducirse hasta un mínimo de 14 KB
  • El objetivo es ofrecer un flujo de trabajo unificado que permita empezar a escribir código en 5 minutos y completar el despliegue en 10 minutos
  • Se puede iniciar un proyecto basado en plantillas con el comando npx electrobun init

Origen del proyecto

  • Su creador hace apps de escritorio desde la época de Visual Basic 6, y el punto de partida fue su experiencia distribuyendo varios productos de startups a miles de usuarios durante la era de Adobe AIR
  • Aunque lleva más de 20 años construyendo y escalando productos de tamaño unicornio como ingeniero inicial de startups, el entorno de desarrollo de escritorio más bien ha retrocedido
  • Mientras desarrollaba co(lab), un navegador web híbrido + editor de código + terminal PTY, se topó con tantas incomodidades que decidió crear su propio framework
  • La primera versión fue hecha con Electron, pero el proceso de firma de código, notarización, distribución y actualizaciones se sentía más como pelear contra el framework que desarrollar la app
  • Quería distribución continua (continuous shipping) como en la web, pero la toolchain existente hacía esto innecesariamente difícil
  • También probó Tauri, pero concluyó que Rust no era adecuado para todos los desarrolladores, y como Bun aún estaba a meses de su lanzamiento 1.0, decidió desarrollarlo por cuenta propia

De macOS a multiplataforma

  • Al principio solo era posible compilar apps para macOS, pero ahora admite de primera clase la compilación y distribución en macOS, Windows y Ubuntu
  • Los instaladores, artefactos de actualización automática y parches diferenciales (differential patches) se generan todos automáticamente
  • Basta con conectar un host estático (R2, S3, GitHub Releases) para completar el despliegue
  • Las actualizaciones diferenciales están a cargo de zig-bsdiff, portado de C a Zig y optimizado con SIMD y zstd
  • A medida que el FFI de Bun se estabilizó, la mayor parte de la capa FFI en Zig que ya existía fue reemplazada por Bun
  • La arquitectura evolucionó de forma positiva, ya que Bun usa memoria compartida al crear workers, lo que mantiene la eficiencia incluso en multiproceso

Funciones ya disponibles

  • Actualmente, como framework completo, ofrece controles de ventana multiplataforma, menús, atajos (accelerators), atajos globales, portapapeles, diálogos, particiones de webview, almacenamiento de sesión, búsqueda dentro de la página (find-in-page), además de herramientas de bundling y actualización
  • La implementación de OOPIF (Out-of-Process Iframe) ya alcanzó un nivel en el que realmente funciona
    • La etiqueta <webview> de Electron fue marcada como deprecated en Chromium, pero aún no existe una alternativa preparada
    • <electrobun-webview> es un verdadero "super iframe" donde el posicionamiento en el DOM, el aislamiento de procesos y el layering funcionan correctamente
    • Funciona de forma multiplataforma sin problemas de cursor flicker y sin parches al motor del navegador

Estado del soporte de plataformas

  • macOS 14+: soporte oficial
  • Windows 11+: soporte oficial
  • Ubuntu 22.04+: soporte oficial
  • Otras distribuciones Linux (gtk3, webkit2gtk-4.1): soporte de la comunidad

Planes a futuro

  • Ya se completó una reescritura total de co(lab) sobre Electrobun y, con la estabilización de la v1, ahora el enfoque pasa plenamente al desarrollo de co(lab)
  • El objetivo central es que el framework se haya estabilizado lo suficiente como para construir productos ambiciosos de largo plazo sin verse sacudido por el platform churn
  • La comunidad de Discord está creciendo, y los usuarios que contribuyeron con pruebas beta, envío de issues y feedback ayudaron a dar forma al framework
  • Electrobun es el primer gran producto lanzado por Blackboard

5 comentarios

 
myname1260 2026-03-03

Como dice que es una reescritura completa de co(lab), pensé que era para mejorar junto con Google la estabilidad en la nube para ejecutar ipynb, pero en realidad es un proyecto de desarrollo del equipo de Blackboard sin relación alguna.

Aun así, parece una experiencia importante que se pueda acceder al OOPIF instalado con npx.

 
geekbini 2026-02-24

"La firma de código, la notarización, la distribución y el proceso de actualización se sienten más como pelear con el framework que como desarrollar la app"

En el contexto de por qué se creó, se menciona algo como lo de arriba,
y realmente hay casos en los que distribuir una app requiere más esfuerzo que desarrollarla.
Solo con haber resuelto ese problema, ya lo valoro muy positivamente.

 
bus710 2026-02-24

También resultó bastante fácil y sencillo agregar Zig a Flutter.
Sin mucha diferencia respecto a la documentación de Dart/C FFI...

 
mammal 2026-02-24

> Me pregunto por qué las principales distribuciones de Linux no ofrecen un WebView por defecto. Es un gran obstáculo para expandir el ecosistema de apps.

Si es un sistema operativo con entorno GUI, creo que a estas alturas WebView ya debería estar establecido como un componente predeterminado.

 
GN⁺ 2026-02-24
Opiniones de Hacker News
  • Hola, soy el creador de Electrobun
    Acabamos de lanzar la versión estable v1. Fijamos la arquitectura y, si necesitan bugs corregidos o alguna API que usaban en Electron/Tauri, déjenla en GitHub Issues y la vamos a priorizar
    Durante el último mes corregí 50 mil líneas de código y terminé el trabajo de estabilización
    También hay un video demo de Colab, un proyecto open source hecho con Electrobun (navegador web + editor de código + terminal PTY)
    Electrobun usa por defecto el WebView del sistema, pero también puede incluir CEF con la opción bundleCEF. Su estructura es independiente del WebView, así que cuando Servo o Ladybird estén listos se podrán reemplazar de inmediato
    Además, en cada release puede generar paquetes con compresión automática basada en zstd para reducir el tamaño de descarga inicial y mantener las actualizaciones tan pequeñas como 14 KB

    • Tengo curiosidad por saber si las definiciones de tipos coinciden con la documentación. Por ejemplo, si agrego la clave partition a BrowserWindow, TypeScript marca un error
    • Gracias por crear Electrobun
  • Electrobun se ve muy prometedor. Planeo hacer mi próximo proyecto con esto
    Tiene la mayor productividad en un stack Full TypeScript. Me alegra tener una alternativa más ligera y rápida que Electron, sin Rust ni procesos de compilación largos

    • Acabo de terminar mi primera app en Tauri y me sorprendió lo mucho que tarda el build en Windows. Definitivamente voy a probar Electrobun
  • En Discord, muchos desarrolladores de juegos están experimentando con Electrobun para juegos de escritorio
    Podría reemplazar parte de Electron en el mercado de juegos indie de Steam
    En particular, la experiencia de desarrollo de juegos en TypeScript con recarga instantánea usando bun --watch game.ts es muy rápida y fluida

    • Desde la perspectiva de alguien que hace mucho desarrollo web, más allá de las herramientas, Bun es un gran salto en rendimiento
    • No hay tantos juegos hechos con Electron. El único que recuerdo es CrossCode. La mayoría usa Unity o Godot
    • Me pregunto en qué servidor de Discord se hacen esos experimentos. Me gustaría participar
    • Node ahora también soporta modo watch y ejecución de TypeScript
  • El principal problema de Tauri es que la calidad del WebView del sistema varía según el OS
    Linux no tiene un WebView oficial, y en Windows 7 o las primeras versiones de 10 no usa Edge WebView. Por esas diferencias, a veces tarda más de 20 segundos en arrancar
    Me pregunto si realmente vale la pena aceptar ese tradeoff para ahorrar 100 MB
    La mayoría de los usuarios tiene internet rápido, así que la velocidad de descarga no es un problema tan grande
    Tenía curiosidad por saber si Electrobun soporta un renderizador Chromium integrado, pero no quedaba claro en la documentación

    • Electrobun usa por defecto el WebView del sistema, pero si hace falta puede empaquetar CEF (Chromium). Está indicado en la documentación oficial
    • En el sitio del producto también dice: “System’s native webview as renderer, CEF optional”. O sea, es opcional
    • Cuando hice una app de Tauri para Windows tuve que usar el embedded bootstrapper. Me alegra ver que Electrobun parece resolver bien ese problema
    • Me pregunto por qué las principales distribuciones de Linux no ofrecen un WebView por defecto. Es un gran obstáculo para expandir el ecosistema de apps
    • En Tauri también están desarrollando una versión basada en CEF. Se puede ver la branch relacionada. Como la calidad del WebView del OS es baja, este enfoque parece una mejora mucho mejor
  • Habría estado bien que el título dejara claro que esto es un post de blog retrospectivo del proyecto
    Para ver el proyecto real, parece más adecuado revisar el enlace a la documentación oficial

  • La página principal del proyecto está aquí
    La interfaz se ve limpia, y como estoy acostumbrado a Zig, probablemente me resulte más accesible que Rust

  • Esta semana vamos a desplegar una nueva app de Electron en la empresa, y siento que Electrobun debió haber salido un año antes
    Electron Builder simplifica un poco las actualizaciones y el proceso de firmado, pero sigue siendo engorroso
    En mi próximo proyecto personal voy a intentar usar Electrobun

  • En el artículo mencionan el problema de notarizing y stapling, y si no usas Xcode, Apple hace que ese proceso sea muy difícil
    En Windows tampoco es fácil automatizarlo en CI. Si Electrobun ofrece una mejor solución, me interesa mucho

    • En la mayoría de los casos viene soportado en la configuración por defecto. Solo hay que definir algunas variables de entorno y hacer el build con notarize: true
      He hecho firmado y notarización varias veces con Electrobun y no tuve problemas. También ofrece una escape hatch para casos complejos
      Si necesitas ayuda, mándame DM por Discord. (No tengo relación con Electrobun, pero conozco bien el sufrimiento del sistema de notarización de Apple)
  • Si una app de Electron pesa más de 500 MB, los 14 MB de Electrobun realmente se sienten como un tamaño pequeño

    • Una app típica de Electron para macOS (DMG) ronda los 80 MB, mientras que Electrobun está más cerca de los 16 MB
  • Es una lástima que las distribuciones aparte de Ubuntu estén actualmente fuera del alcance de soporte
    La discusión relacionada se puede revisar en este comentario del issue