Early Development — Gelectron is a work in progress. Do not use it for any app unless it is pure HTML, CSS, and JavaScript. APIs are unstable and many features are incomplete.

Early Development — Do Not Use for Apps (Unless Pure HTML/CSS/JS)

Electron, reimagined
with Gecko & Servo

A lighter, faster alternative to Electron. Drop-in compatible, powered by Rust, and built for the modern web.

Electron
~300 MB
bundles Chromium
vs
Gelectron
much smaller
uses Servo

🛑 Do not use this yet

Gelectron is in very early development. Many Electron APIs are stubs or incomplete. The project is experimental and will break. Do not use it for any app unless it is pure HTML, CSS, and JavaScript. Contributions and interest are welcome, but please do not rely on this for anything beyond tinkering.

Why Gelectron?

The best parts of Electron, minus the bloat.

🪶

Lightweight

Servo is designed for embedding. Smaller binaries, lower memory usage, and faster startup compared to Chromium-based Electron.

🔧

Drop-in Replacement

Run gelectron . instead of electron .. Existing Electron apps should work without code changes.

🦀

Rust-Powered Core

Native rendering via Servo, CSS via Stylo, GPU compositing via WebRender — all written in Rust for safety and performance.

📦

Familiar APIs

Supports BrowserWindow, ipcMain, ipcRenderer, Menu, Tray, dialog, and more. A JavaScript compatibility layer on top.

🌐

Modern Web Engine

Built on Servo — a next-generation browser engine from Mozilla. Better web standards support from day one.

🔓

Open Source

MIT licensed. Contributions welcome. Built in the open on GitHub.

How It Works

If you know Electron, you already know Gelectron.

Before (Electron)
npx electron .
After (Gelectron)
npx gelectron .

That's it. Same codebase, different engine.

Installation Guide

For the brave and the curious. Seriously — read the warning first.

🛑

Stop. Read this first.

Gelectron is not ready for use. Do not use it for any app unless it is pure HTML, CSS, and JavaScript. Installing it now will likely result in broken builds, missing features, and frustration. This guide exists for early explorers and contributors only.

1

Clone the repository

git clone https://github.com/mileswolfallen2/gelectron.git
cd gelectron
2

Install Rust (if you haven't)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Gelectron's core is written in Rust. You'll need a recent toolchain.

3

Build from source

cargo build --release

This will take a while. Servo has a lot of dependencies.

4

Run your Electron app

./target/release/gelectron /path/to/your/electron-app

It might work with pure HTML/CSS/JS. Anything else will likely break. You've been warned.

Requirements

  • Rust — stable toolchain (1.70+)
  • OS — macOS, Linux, or Windows
  • Disk — ~2 GB for build dependencies
  • Patience — builds can take 10–20 minutes

Built on Proven Technology

Gelectron stands on the shoulders of giants.

Rust

Memory-safe systems language powering the entire native layer. No garbage collector, no runtime overhead.

Servo

Mozilla's next-gen browser engine designed for embedding. Parallel CSS layout, GPU-accelerated rendering.

WebRender

GPU-based renderer used in Firefox. Converts the web page into a texture for efficient compositing.

Stylo

Rust-powered CSS engine. Parallel style computation directly from Rust, replacing Gecko's old C++ CSS parser.

Your App
HTML / CSS / JavaScript
Gelectron JS Layer
Electron API compatibility (BrowserWindow, IPC, Menu...)
Gelectron Core (Rust)
Window management, process model, native bindings
Servo Engine
Stylo (CSS) + WebRender (GPU) + SpiderMonkey (JS)

API Support Status

Many Electron APIs are already implemented. Some are stubs.

API Status Notes
app Working Core lifecycle management
BrowserWindow Working Window creation and management
ipcMain Working Main process message handling
ipcRenderer Working Renderer process messaging
Menu Working Native menu creation
Tray Working System tray integration
dialog Working Native file/message dialogs
shell Working OS shell interactions
Notification Working Desktop notifications
nativeImage Working Image handling
contextBridge Working Context isolation bridge
autoUpdater Stub Placeholder — not yet implemented
protocol Stub Placeholder — not yet implemented
net Stub Placeholder — not yet implemented
powerMonitor Stub Placeholder — not yet implemented

Roadmap

Where Gelectron is headed (very early stages).

Phase 1 — Foundation

  • Basic window creation via Servo
  • Core Electron API compatibility layer
  • IPC between main and renderer
  • CLI entry point (gelectron .)

Phase 2 — Core APIs

  • Menu, Tray, Dialog, Shell
  • Notification support
  • nativeImage handling
  • contextBridge for security

Phase 3 — Ecosystem

  • autoUpdater integration
  • Protocol handler registration
  • Native Node.js module support
  • Packaging & distribution tools

Phase 4 — Production Ready

  • Full API parity with Electron
  • Performance optimization
  • Cross-platform CI/CD
  • Documentation & guides

Frequently Asked Questions

Got questions? We've got answers (and more questions).

Gelectron is an experimental, open-source alternative to Electron that uses Mozilla's Servo browser engine instead of Chromium. It aims to be a drop-in replacement — you run gelectron . instead of electron . and your existing app should work.

Electron bundles a full copy of Chromium (~150–300 MB) and consumes significant memory. Gelectron aims to provide the same developer experience with much lighter resource usage by leveraging Servo, which was designed from the ground up for embedding.

No. Gelectron is in very early development. Many APIs are stubs or incomplete. It is experimental and will break. Do not use it for any app unless it is pure HTML, CSS, and JavaScript. We will announce when it reaches a more usable state.

Eventually, yes — that's the goal. Simple apps that use only pure HTML, CSS, and JavaScript may already work. Apps using Node.js modules, native APIs, or advanced Electron features will likely need to wait for fuller implementation.

The core is written in Rust, using Servo for rendering and Stylo for CSS. On top of that sits a JavaScript compatibility layer that maps Electron's familiar API surface to Gelectron's Rust internals.

Currently, Gelectron targets macOS, Linux, and Windows. Cross-platform support is a core goal, leveraging Rust's excellent cross-compilation story and Servo's platform-agnostic design.

Absolutely! Gelectron is MIT licensed and open source. Check out the GitHub repo to explore the code, open issues, or submit pull requests. All contributions are welcome — even just starring the repo helps.

While benchmarks are still early, Servo's architecture offers significant advantages: parallel CSS layout, GPU-accelerated rendering via WebRender, and lower memory overhead from not bundling Chromium. Real-world comparisons will come as the project matures.

Gelectron includes a JavaScript compatibility layer, but native Node.js module support is planned for a later phase. For now, pure JavaScript modules and many npm packages should work, but native addons (anything with C++ bindings) will not.

There is no firm timeline. Gelectron is a community-driven passion project. The roadmap outlines the major phases, but progress depends on contributor interest and Servo's own development. Follow the repo for updates.

Interested in the project?

Star the repo, open an issue, or just follow along. Gelectron is early, but the vision is real.

Check it out on GitHub →