u/DetailAdventurous315

BlueJS - Compile JavaScript to 1.2MB native binaries (no V8)

The Problem: We’ve normalized shipping 150MB Electron apps and 50MB runtimes just to open a simple window or read a file. I got tired of the bloat, so I built BlueJS as a side project.

BlueJS isn't a wrapper; it's an Ahead-Of-Time (AOT) compiler that translates a strict subset of JavaScript directly to C++, links it, and strips the engine out entirely.

The Specs:

  • Binary Size: 1.2 MB standalone (no runtime/V8 needed).
  • Startup: ~5ms (compared to ~90ms for Node).
  • Memory: 3.8 MB peak RSS.
  • Native UI: Built-in support for OS windows and dialogs (GTK/WebView2) without Chromium.

How it works: It uses a "Hybrid Mode." Performance-critical code and UI are compiled AOT. For npm compatibility, it uses an embedded QuickJS "island" that handles pure-JS packages. The bluejs.dev site itself is actually served by a single 1.4MB Blue binary.

Try it out: The compiler is in a closed beta, but on top of the Windows/Linux binaries I set up a GitHub Codespace sandbox so anyone can verify these benchmarks and inspect the generated C++ in a safe, cloud environment:

Try the Playground: https://github.com/bluejs-team/Bluejs-playground

I’ll be hanging out in the comments to answer any questions and to get feedback!

u/DetailAdventurous315 — 4 days ago

BlueJS - Compile JavaScript to 1.2MB native binaries (no V8)

The Problem: We’ve normalized shipping 150MB Electron apps and 50MB runtimes just to open a simple window or read a file. I got tired of the bloat, so I built BlueJS.

BlueJS isn't a wrapper; it's an Ahead-Of-Time (AOT) compiler that translates a strict subset of JavaScript directly to C++, links it, and strips the engine out entirely.

The Specs:

  • Binary Size: 1.2 MB standalone (no runtime/V8 needed).
  • Startup: ~5ms (compared to ~90ms for Node).
  • Memory: 3.8 MB peak RSS.
  • Native UI: Built-in support for OS windows and dialogs (GTK/WebView2) without Chromium.

How it works: It uses a "Hybrid Mode." Performance-critical code and UI are compiled AOT. For npm compatibility, it uses an embedded QuickJS "island" that handles pure-JS packages. The bluejs.dev site itself is actually served by a single 1.4MB Blue binary.

Try it out: The compiler is in a closed beta, but on top of the Windows/Linux binaries I set up a GitHub Codespace sandbox so anyone can verify these benchmarks and inspect the generated C++ in a safe, cloud environment:

Try the Playground: https://github.com/bluejs-team/Bluejs-playground

I’ll be hanging out in the comments to answer any questions!

bluejs.dev
u/DetailAdventurous315 — 4 days ago