Kim BoenderVite 8 and Vite+: One Tool to Replace Your Entire Frontend Toolchain
Kim Boender
I've been using Vite since before it hit 1.0, and it's been my dev server of choice ever since. So when Evan You's company VoidZero dropped Vite 8 stable and then Vite+ Alpha within days of each other in March 2026, I had to dig in immediately.
The short version: your JS/TS toolchain is about to get a lot simpler, and dramatically faster.
What Is VoidZero, and Why Does It Matter?
VoidZero is a company Evan You (creator of Vue.js and Vite) founded in late 2024 with a specific goal: rebuild the JavaScript toolchain from the ground up in Rust. If that sounds ambitious, it is. But they've already shipped.
The core deliverables are:
- Rolldown, a Rollup-compatible bundler written in Rust
- Oxc, a JS/TS parser, transformer, linter, and formatter
- Vite 8, stable release that replaces esbuild + Rollup with Rolldown
- Vite+, a unified CLI that wraps all of the above into one tool
If you use Vite today (and if you're building with Vue, Nuxt, or SvelteKit, you almost certainly do), this is the roadmap your toolchain is heading down.
Vite 8: Rolldown Takes the Wheel
Vite 8 stable shipped on March 12, 2026. The headline change: Rolldown now powers production builds, replacing the esbuild + Rollup combination that Vite has used since its early days.
The performance numbers are hard to ignore. In official benchmarks testing 19,000 modules, Rolldown completed in 1.61 seconds compared to Rollup's 40.10 seconds, a 25× improvement. Real-world teams have seen similar gains; Linear reportedly saw production builds drop from 46 seconds to just 6 seconds after upgrading.
Migrating to Vite 8
For most projects, the upgrade is refreshingly simple. Vite 8 ships with a compatibility layer that auto-converts your existing rollupOptions config to Rolldown equivalents:
npm install vite@8Run your build and see if anything breaks. For the majority of Vue/React/TS projects, nothing will. The most likely change you'll need to make manually is the options rename:
// vite.config.ts
export default defineConfig({
build: {
- rollupOptions: {
+ rolldownOptions: {
// your existing config
}
}
})A few other breaking changes worth knowing:
- CSS minification now defaults to Lightning CSS (was esbuild). Revert with
build.cssMinify: 'esbuild'if needed. - Oxc replaces esbuild for JS/TS transformation, in practice, you won't notice a difference in output
- CommonJS interop behavior has changed slightly; if you import a lot of CJS modules, use
legacy.inconsistentCjsInterop: trueas a temporary workaround
For projects with complex Rollup plugin setups, the Vite 8 migration guide is thorough. Most popular Rollup plugins have already added Rolldown compatibility.
Vite+: The Unified Toolchain
Vite 8 is a solid incremental upgrade. Vite+ is the bigger story.
Announced on March 13, 2026, Vite+ wraps everything VoidZero has built into a single CLI that manages your runtime, package manager, linter, formatter, test runner, and bundler. One tool, one config, one install command.
Here's what gets consolidated:
| Your Current Setup | Replaced By |
|---|---|
| Vite (dev server + build) | Vite 8 + Rolldown |
| ESLint | Oxlint (50–100× faster) |
| Prettier | Oxfmt (up to 30× faster) |
| Vitest | Vitest 4.x (bundled) |
| tsup / rollup (library builds) | tsdown |
Creating a new project is one command:
npm create vite-plus@alpha my-app -- --template vue-ts
cd my-app && npm install && npm run devVite+ ships with templates for Vue, Nuxt, React, React Router, TanStack Start, and Svelte.
Migration for Existing Projects
For existing projects, there's a dedicated migration command that handles most of the heavy lifting:
npx vite-plus migrateThis command (vp migrate) scans your project, updates your config, and replaces your separate lint/format scripts with Vite+ equivalents. It's still alpha, so review the diff carefully before committing, but in my testing on a mid-size Vue 3 + Pinia project, it got about 90% of the way there without manual intervention.
Vite Task: The Built-In Task Runner
One of the more interesting additions is Vite Task, a built-in task runner that replaces npm scripts for orchestrating your build pipeline. Instead of chaining shell commands in package.json, you define tasks in vite.config.ts:
import { defineConfig, defineTask } from 'vite-plus'
export default defineConfig({
tasks: {
build: defineTask({
run: ['lint', 'typecheck', 'bundle'],
parallel: false,
}),
lint: defineTask({
command: 'oxlint src/**/*.{ts,vue}',
}),
typecheck: defineTask({
command: 'tsc --noEmit',
}),
}
})This is still stabilizing in alpha, but the direction makes sense, your task runner knowing about your build graph means smarter caching and parallelism.
Should You Upgrade?
Vite 8, yes, today. This is production-ready software. The Rolldown migration has been in beta since late 2025, the ecosystem has had time to catch up, and the performance gains are real. If you're on Vite 7, upgrade during your next sprint.
Vite+, watch and wait (or experiment). It's alpha software, and Nuxt/Vite plugin ecosystem coverage is still being worked out. I wouldn't drop it into a production project tomorrow. But for greenfield projects or personal tools, it's worth kicking the tires now so you're ready when it hits stable.
The Bigger Picture
What VoidZero is building is a bet that the fragmented JS toolchain, ESLint, Prettier, Rollup, esbuild, Vitest, each configured separately, each with its own plugin ecosystem, is the wrong model. One opinionated, high-performance toolchain is the right answer.
We've seen this argument made before (Rome → Biome made the same case for linting and formatting). VoidZero has a structural advantage: Evan You built Vite, which is already the default dev server for Vue, Nuxt, SvelteKit, Astro, and more. That distribution is hard to compete with.
Update to Vite 8 now. Keep an eye on Vite+ as it moves toward stable. The toolchain consolidation is coming, and for once, I think the hype is justified.