58 poin oleh GN⁺ 2026-02-24 | 5 komentar | Bagikan ke WhatsApp
  • Framework aplikasi desktop berbasis TypeScript yang menggunakan Bun untuk proses utama dan Zig untuk native binding
  • Mendukung macOS, Windows, Ubuntu, serta secara otomatis menghasilkan installer, pembaruan otomatis, dan artefak patch diferensial
  • Menyediakan set fitur desktop lengkap seperti kontrol jendela, menu, pintasan keyboard, clipboard, dialog, session storage, dan lainnya, serta implementasi webview stabil berbasis OOPIF
  • Struktur internal memanfaatkan FFI Bun dan model shared memory agar tetap efisien bahkan dalam lingkungan multi-proses
  • Dikembangkan langsung selama 2 tahun oleh pengembang yang mengalami keterbatasan Electron dan Tauri, sambil mempelajari Zig, C, C++, dan Objective-C
  • Menargetkan alur kerja terpadu yang memungkinkan mulai menulis kode dalam 5 menit dan melakukan deployment dalam 10 menit

Gambaran umum dan tujuan proyek Electrobun

  • Arsitektur yang menjalankan proses utama dengan Bun, membundel TypeScript webview, dan menulis native binding dengan Zig
  • Baik proses utama maupun webview ditulis dalam TypeScript, sambil mempertahankan isolasi antarproses dan menyediakan komunikasi RPC yang cepat serta bertipe
  • Ukuran app bundle self-extracting sekitar 12MB (saat menggunakan system webview, sebagian besar berasal dari ukuran runtime Bun)
  • Pembaruan diferensial berbasis bsdiff dapat menekan ukuran patch hingga minimum 14KB
  • Menargetkan satu alur kerja terpadu yang memungkinkan mulai menulis kode dalam 5 menit dan menyelesaikan deployment dalam 10 menit
  • Proyek dapat dimulai dari template dengan perintah npx electrobun init

Latar belakang pembuatan

  • Telah membuat aplikasi desktop sejak era Visual Basic 6, dengan pengalaman mendistribusikan berbagai produk startup ke ribuan pengguna pada era Adobe AIR sebagai titik awal
  • Selama lebih dari 20 tahun membangun dan menskalakan produk sekelas unicorn sebagai engineer awal startup, tetapi lingkungan pengembangan desktop justru mengalami kemunduran
  • Saat membuat co(lab), sebuah browser web + editor kode + terminal PTY hibrida, terlalu banyak hambatan yang ditemui sehingga diputuskan untuk membuat framework sendiri
  • Versi pertama dibuat dengan Electron, tetapi proses code signing, notarization, distribusi, dan pembaruan terasa lebih seperti melawan framework daripada membangun aplikasi
  • Menginginkan continuous shipping seperti di web, tetapi toolchain yang ada membuatnya jauh lebih sulit dari yang seharusnya
  • Juga sempat mencoba Tauri, tetapi menilai Rust tidak cocok untuk semua pengembang, dan saat itu Bun masih beberapa bulan sebelum rilis 1.0 sehingga pengembangan dilakukan secara mandiri

Dari macOS ke lintas platform

  • Awalnya hanya bisa membangun aplikasi macOS, tetapi kini build dan deployment untuk macOS, Windows, Ubuntu semuanya didukung sebagai kelas satu
  • Installer, artefak pembaruan otomatis, dan patch diferensial semuanya dihasilkan secara otomatis
  • Deployment selesai cukup dengan menghubungkan static host (R2, S3, GitHub Releases)
  • Pembaruan diferensial ditangani oleh zig-bsdiff, yang di-port dari C ke Zig dan dioptimalkan dengan SIMD dan zstd
  • Setelah FFI Bun menjadi stabil, sebagian besar lapisan Zig FFI yang sebelumnya ditulis digantikan oleh Bun
  • Arsitekturnya berubah ke arah yang positif, karena Bun menggunakan shared memory saat membuat worker sehingga efisiensi tetap terjaga dalam multi-proses

Fitur yang telah dirilis

  • Kini hadir sebagai framework lengkap dengan kontrol jendela lintas platform, menu, shortcuts, global shortcut, clipboard, dialog, partisi webview, session storage, find-in-page, serta tooling untuk bundling dan pembaruan
  • Implementasi OOPIF (Out-of-Process Iframe) telah mencapai tingkat yang benar-benar berfungsi
    • Tag <webview> milik Electron telah deprecated di Chromium, tetapi belum ada alternatif yang disediakan
    • <electrobun-webview> adalah "super iframe" sejati dengan DOM positioning, isolasi proses, dan layering yang berfungsi normal
    • Berjalan lintas platform tanpa masalah cursor flicker dan tanpa patch pada browser engine

Status dukungan platform

  • macOS 14+: didukung resmi
  • Windows 11+: didukung resmi
  • Ubuntu 22.04+: didukung resmi
  • Distribusi Linux lain (gtk3, webkit2gtk-4.1): didukung komunitas

Rencana selanjutnya

  • co(lab) telah selesai ditulis ulang sepenuhnya di atas Electrobun, dan berdasarkan stabilisasi v1 kini fokus penuh beralih ke pengembangan co(lab)
  • Tujuan utamanya adalah menstabilkan framework agar cukup kuat untuk membangun produk jangka panjang yang ambisius tanpa terguncang oleh platform churn
  • Komunitas Discord terus berkembang, dan para pengguna yang berkontribusi lewat beta testing, pelaporan isu, dan feedback ikut membentuk framework ini
  • Electrobun adalah produk besar pertama yang dirilis oleh Blackboard

5 komentar

 
myname1260 2026-03-03

Tertulis sebagai penulisan ulang penuh co(lab), jadi saya sempat mengira ini terkait peningkatan stabilitas cloud untuk menjalankan ipynb bersama Google, tetapi ternyata ini adalah proyek pengembangan dari tim Blackboard yang sama sekali tidak berkaitan.

Meski begitu, fakta bahwa OOPIF yang diinstal dengan npx bisa diakses tampaknya merupakan pengalaman yang penting.

 
geekbini 2026-02-24

"Proses penandatanganan kode, notarization, distribusi, dan pembaruan terasa seperti bertarung dengan framework alih-alih mengembangkan aplikasi"

Di latar belakang pembuatan pada artikel utama ada pernyataan seperti di atas,
dan memang ada kasus ketika distribusi justru membutuhkan lebih banyak upaya daripada pengembangan aplikasi itu sendiri.
Saya sangat menghargainya hanya karena masalah ini berhasil diperbaiki.

 
bus710 2026-02-24

Ternyata memasang Zig ke Flutter juga cukup mudah dan sederhana. Tidak jauh berbeda dengan dokumentasi Dart/C FFI...

 
mammal 2026-02-24

Saya penasaran kenapa distro Linux utama tidak menyediakan WebView bawaan. Ini hambatan besar bagi perluasan ekosistem aplikasi

Kalau sistem operasinya punya lingkungan GUI, rasanya sekarang WebView memang sudah seharusnya menjadi komponen bawaan.

 
GN⁺ 2026-02-24
Opini Hacker News
  • Halo, saya pembuat Electrobun
    Kali ini saya merilis versi stabil v1. Arsitekturnya sudah saya tetapkan, dan jika ada bug atau API yang biasa dipakai di Electron/Tauri yang Anda butuhkan, silakan tinggalkan di GitHub issue dan itu akan saya prioritaskan
    Selama sebulan terakhir saya telah merevisi 50 ribu baris kode dan menyelesaikan pekerjaan stabilisasi
    Ada juga video demo dari proyek open source Colab (browser web + editor kode + terminal PTY) yang dibuat dengan Electrobun
    Electrobun pada dasarnya memakai WebView sistem, tetapi juga bisa menyertakan CEF dengan opsi bundleCEF. Secara arsitektural ia independen dari WebView, jadi saat Servo atau Ladybird siap, keduanya bisa langsung menggantikannya
    Selain itu, di setiap rilis dapat dibuat paket kompresi otomatis berbasis zstd untuk mengurangi ukuran unduhan awal, dan update dapat dijaga tetap kecil di kisaran 14KB

    • Saya penasaran apakah definisi tipenya sudah sesuai dengan dokumentasi. Misalnya, jika saya menambahkan key partition ke BrowserWindow, TypeScript memunculkan error
    • Terima kasih sudah membuat Electrobun
  • Electrobun terlihat sangat menjanjikan. Saya berencana membuat proyek berikutnya dengan ini
    Dalam stack TypeScript penuh, ini yang paling produktif. Senang rasanya mendapatkan alternatif yang lebih ringan dan cepat daripada Electron tanpa Rust atau proses kompilasi yang panjang

    • Saya baru saja menyelesaikan aplikasi Tauri pertama saya, dan terkejut karena build Windows memakan waktu sangat lama. Saya pasti akan mencoba Electrobun
  • Di Discord, banyak pengembang game sedang bereksperimen dengan game desktop menggunakan Electrobun
    Ini berpotensi menggantikan sebagian Electron di pasar game indie Steam
    Terutama pengalaman pengembangan game TypeScript dengan reload instan lewat bun --watch game.ts terasa sangat cepat dan mulus

    • Dari sudut pandang orang yang banyak mengerjakan web development, terlepas dari alatnya, Bun sendiri adalah lompatan besar dalam performa
    • Tidak banyak game yang dibuat dengan Electron. Yang saya ingat hanya CrossCode. Kebanyakan memakai Unity atau Godot
    • Saya penasaran eksperimen seperti itu dilakukan di server Discord mana. Saya ingin ikut
    • Node sekarang juga mendukung mode watch dan menjalankan TypeScript
  • Masalah utama Tauri adalah kualitas WebView sistem berbeda-beda tergantung OS
    Linux tidak punya WebView resmi, dan di Windows 7 atau awal Windows 10 tidak memakai Edge WebView. Karena perbedaan ini, waktu boot bisa lebih dari 20 detik
    Saya ragu apakah trade-off seperti ini layak diambil demi menghemat 100MB
    Sebagian besar pengguna memakai internet cepat, jadi kecepatan unduh bukan masalah besar
    Saya penasaran apakah Electrobun mendukung renderer Chromium bawaan, tetapi tidak jelas di dokumentasinya

    • Electrobun pada dasarnya memakai WebView sistem, tetapi bila perlu bisa membundel CEF (Chromium). Ini tertulis di dokumentasi resmi
    • Di situs produknya juga tertulis “System’s native webview as renderer, CEF optional”. Jadi, itu opsional
    • Saat membuat aplikasi Tauri di Windows, saya harus memakai embedded bootstrapper. Senang melihat Electrobun tampaknya menyelesaikan masalah ini dengan baik
    • Saya heran mengapa distro Linux utama tidak menyediakan WebView bawaan. Ini hambatan besar bagi perluasan ekosistem aplikasi
    • Di Tauri juga sedang dikembangkan versi berbasis CEF. Lihat branch terkait. Karena kualitas WebView OS rendah, pendekatan ini tampaknya akan menjadi perbaikan yang jauh lebih baik
  • Saya berharap judulnya menyebutkan bahwa tulisan ini adalah posting blog retrospektif proyek
    Untuk proyek aslinya, lebih tepat melihat tautan dokumentasi resmi

  • Halaman utama proyek ada di sini
    Antarmukanya terlihat rapi, dan saya sudah terbiasa dengan Zig, jadi sepertinya lebih mudah diakses daripada Rust

  • Minggu ini di perusahaan kami akan merilis aplikasi Electron baru, dan rasanya akan bagus kalau Electrobun hadir 1 tahun lebih awal
    Electron Builder memang agak menyederhanakan proses update dan penandatanganan, tetapi tetap merepotkan
    Untuk proyek pribadi berikutnya saya berencana mencoba Electrobun

  • Tulisan itu menyebut masalah notarizing dan stapling, dan jika tidak memakai Xcode, Apple membuat proses ini sangat sulit
    Di Windows juga otomatisasi CI tidak mudah. Jika Electrobun memberi solusi yang lebih baik, saya sangat tertarik

    • Dalam kebanyakan kasus ini didukung dengan pengaturan default. Cukup atur beberapa environment variable dan build dengan notarize: true
      Saya sudah beberapa kali melakukan signing dan notarization dengan Electrobun tanpa masalah. Ia juga menyediakan escape hatch untuk kasus yang rumit
      Jika butuh bantuan, kirim DM di Discord. (Saya bukan pihak Electrobun, tetapi sangat paham penderitaan sistem notarization Apple)
  • Jika aplikasi Electron berukuran lebih dari 500MB, maka 14MB dari Electrobun terasa benar-benar kecil

    • Aplikasi Electron macOS (DMG) yang umum sekitar 80MB, sedangkan Electrobun berada di kisaran 16MB
  • Sayangnya distro selain Ubuntu saat ini di luar cakupan dukungan
    Diskusi terkait bisa dilihat di komentar issue