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.

Hono: Web framework for node.js

Hono is a small web framework — a router + middleware layer for HTTP APIs, in the Express/Fastify slot but built on the modern Request/Response web standard rather than Node's req/res. It's ~14 kB, runs natively on Bun (also Deno, Cloudflare Workers, Node), and its selling point is end-to-end typed routes: app.get('/api/photos/:id', c => c.json(...)) where the param and response types flow through to a typed client.


Hono - Web framework built on Web Standards

Fast, lightweight, built on Web Standards. Support for any JavaScript runtime.

🚀Ultrafast & Lightweight
The router RegExpRouter is really fast. The hono/tiny preset is under 14kB. Using only Web Standard APIs.

🌍Multi-runtime
Works on Cloudflare, Fastly, Deno, Bun, AWS, or Node.js. The same code runs on all platforms.

🔋Batteries Included
Hono has built-in middleware, custom middleware, third-party middleware, and helpers. Batteries included.

😃Delightful DX
Super clean APIs. First-class TypeScript support. Now, we've got "Types".

Hono @GitHub