Skip to content
industry insights

Vite's Rust Rival Is Here (Mostly)

A startup rewrote Vite's dev server in Rust to handle millions of daily previews, claiming a 4x memory reduction. But this massive performance gain comes at a cost that reveals a new, fragmented future for open-source tooling.

Cassidy Wolfe
Vite's Rust Rival Is Here (Mostly)

Built for Scale, Not Your Laptop

Lovable's OJ (OJ) isn't just another casual Rust rewrite of a JavaScript toolchain. This isn't a hobbyist's weekend project; it’s a strategic, performance-driven overhaul of Vite's core dev server, from its file watcher and module graph to hot module reloading and React fast refresh. Lovable engineered OJ using Rolldowndown and Oxc, technologies also leveraged by Vite itself and maintained by VoidZero, underscoring its serious intent.

Lovable, a prominent preview service provider, faces a monumental operational challenge: spinning up roughly a million Vite sandboxes every single day. At this unfathomable scale, memory consumption and cold startup times aren't mere developer conveniences; they become critical business metrics. OJ delivers on this front, showing up to 1.7 times faster cold starts to a painted page and using a quarter of the memory compared to default Vite on large applications with 5,000 components, delivering instant-on, resource-light previews essential for their platform.

Consider the unique demands of AI agents, which can write a dozen files in a burst. Vite would typically trigger an update for each individual save. OJ, however, intelligently coalesces these rapid-fire changes into a single, atomic update within its integrated watcher, module graph, compiler, and hot update pipeline. It even features an optional gate, holding updates until an agent explicitly posts to a flush endpoint, ensuring only complete, finished changes propagate to the preview. Such bespoke optimizations are entirely irrelevant for individual developers, but they critically enable Lovable's massive, agent-driven infrastructure.

Benchmarks Don't Lie (But They Omit Details)

Lovable’s headline benchmarks for OJ are undeniably impressive. On a massive 5,000-component application, OJ achieves 1.7x faster cold starts to a painted page than default Vite, while consuming a mere quarter of Vite's memory. These figures are compelling for anyone struggling at extreme scale.

But don't rush to rewrite your package.json just yet. On typical, smaller applications, OJ's performance gains are minimal, with memory usage only slightly better than Vite. The substantial benefits emerge specifically under conditions of immense scale and frequent spin-up/tear-down, Lovable's core use case.

Vite’s creator, Evan You, correctly highlights critical caveats. OJ’s benchmarks often exclude work Vite performs, such as type checking via vite-plugin-checker, which OJ simply bypasses. This creates an imperfect, though still informative, comparison.

Furthermore, Vite’s own experimental bundled dev mode significantly closes the cold start speed gap, sometimes even surpassing OJ. However, it does not address the memory consumption difference, leaving OJ with a clear advantage on that front for large-scale deployments. The trade-offs are real.

The Price of Speed: Compatibility and Compromise

OJ's impressive benchmarks come with a significant asterisk. This speed isn't universal; it's a product of extreme specialization. Lovable rewrote Vite's core dev server primarily for React applications, the very kind Lovable generates, deliberately sacrificing the broad framework and configuration support that makes Vite a ubiquitous tool.

This specialization introduces compatibility issues. Testing revealed a critical React Fast Refresh bug: state was lost in a TanStack application, indicating a full reload instead of a hot update. While a plain React app worked correctly, this edge case highlights the maturity gap, as a general-purpose tool like Vite has long since ironed out such inconsistencies.

Architecturally, OJ takes a direct Rust-first approach. It operates as a Rust process driving other Rust tools like Rolldowndown and Oxc, with a JavaScript bridge solely for Vite plugin compatibility. This contrasts sharply with Vite, which functions as a Node.js process orchestrating Rust components. Vite's flexibility comes with overhead; OJ's direct Rust pipeline strips that away, offering raw speed for its targeted use case. Further insights into Lovable's motivation are available here: Faster previews, soon powered by OJ - Lovable.

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

Evan You on the Dawn of 'Slop Forks'

OJ isn't a direct Vite competitor; it's what Evan You, Vite's creator, astutely terms a 'tailored projection'. Lovable rewrote key parts of Vite's dev server, yes, but they optimized it for their unique constraints: millions of sandboxed React applications. This isn't about replacing Vite, but rather a strategic re-implementation under radically different parameters to solve a specific, massive problem.

You sees this as more than an isolated incident; it's a harbinger of a broader, perhaps inevitable, trend. As AI collapses the cost of re-implementation, developers will increasingly create these specialized 'slop forks'. Instead of open-source maintainers battling thousands of niche Pull Requests, companies will simply maintain their own highly optimized versions, customized to their exact needs.

This future presents a fascinating, yet precarious, double-edged sword. On one hand, it genuinely frees core maintainers from the deluge of highly specific contributions that often don't align with the project's broader vision. On the other, it risks fragmenting the ecosystem, where valuable improvements become siloed within corporate forks, never contributing back to the central project. Evan You himself admits uncertainty about whether this dynamic is ultimately beneficial for the spirit of open source collaboration. Only time will tell if this leads to innovation or isolation.

Frequently Asked Questions

What is Orange Juice (OJ)?

Orange Juice (OJ) is a reimplementation of the Vite development server in Rust, created by the company Lovable. It's designed to be a high-performance, low-memory alternative for their specific use case of running millions of preview sandboxes daily.

Is OJ a complete replacement for Vite?

No. OJ only rewrites the dev server components like the file watcher, module graph, and HMR. It is not a full Vite rewrite and still relies on Vite's plugin ecosystem. It is also currently optimized primarily for React applications.

Is OJ significantly faster than Vite?

On large applications (e.g., 5,000+ components), OJ shows significant performance gains, being nearly twice as fast on cold starts and using only a quarter of the memory. On smaller projects, the difference is much less noticeable.

What did Vite's creator Evan You say about OJ?

Evan You called OJ an impressive project that solves Lovable's problem well. He also clarified it's not a full Vite replacement and pointed out that its speed comes from its narrow focus, unlike Vite which must support a vast ecosystem. He highlighted it as an example of a future trend of 'tailored projections' or 'slop forks' in open source.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only

For builders

This page is doing a job for someone else’s tool.

AI agents read it. Buyers land on it. It answers in eight languages and over MCP. Your tool can have one like it — live in 24 hours.