Monday, September 21, 2026

JS dev tool: OJ (Rust) vs Vite

Another Rust built tool, with excellent performance

Faster previews, soon powered by OJ | Lovable

Lovable is replacing Vite with OJ ("Orange Juice"), a custom single-binary Rust development server designed to accelerate app previews and drastically lower sandbox resource usage.

Key Highlights

  • Built for Cloud Scale: While Vite runs a heavy Node.js toolchain for individual developers, OJ is built end-to-end in Rust on top of Rolldown and Oxc. It spawns a small Node sidecar only when plugins or server code explicitly require JavaScript.

  • AI Agent Optimizations: Standard hot reloading handles single file saves, but OJ synchronizes its file watcher, compiler, and module graph to batch multi-file edits from AI agents into a single update, avoiding glitchy renders of incomplete intermediate states.

  • Vite Compatibility: Operates as a drop-in replacement by parsing vite.config.ts (or oj.config.ts) and running existing Vite plugins through a compatibility bridge.

Performance Benchmarks

  • Memory Efficiency: Cuts RAM consumption down to 1/3 to 1/8 of Vite's footprint (e.g., Excalidraw runs on 288MB with OJ vs. 2.4GB with Vite; a 10,000-component app uses ~115MB vs. >1.5GB).

  • Cold Starts: Achieves up to ~4x faster cold starts on synthetic benchmarks (1.2s vs. 4.9s) and ~2.3x faster starts on real applications like Excalidraw (~0.8s vs. ~2.3s).

  • Production Impact: In production testing, total median preview load times dropped from 17.4s to 8.0s, and sandbox acquisition times improved from 14.5s to 3.0s.

Status and Rollout

OJ is being deployed gradually across Lovable previews to ensure full compatibility and is open source on GitHub at github.com/lovablelabs/oj.



Here is OJ next to Vite on the same projects. The first is a synthetic app with 10,000 components and the others are real open source apps run unchanged.

ProjectOJ cold startVite cold startOJ memoryVite memory
10,000 components1.2s4.9s~115MB>1.5GB
Excalidraw~0.8s~2.3s288MB2.4GB
Twenty (CRM)~10.2s~11.3s1.5GB4.9GB

The headline is a roughly 4x faster cold start on the synthetic benchmark and, just as important for running previews at scale, memory measured in hundreds of megabytes instead of gigabytes.

No comments: