
We’re thrilled to announce the stable release of Vite 8! When Vite first launched, we made a practical bet on two bundlers: ESBuild for speed during development, and Rollup for optimized production builds. That bet served us well over the years. We are very grateful to the rollup and asbuild maintainers. Without them Vitae would not have been successful. Today, that turns into one: Vite 8 ships with Rolldown as its single, integrated, Rust-based bundler, providing up to 10-30x faster builds while maintaining full plugin compatibility. This is the most significant architectural change since Vitae 2.
Vite is now being downloaded 65 million times a week, and the ecosystem continues to grow with every release. To help developers navigate the ever-expanding plugin landscape, we also launched registry.vite.dev, a searchable directory of plugins for vite, rolldown, and rollup that collects daily plugin data from npm.
Quick Links:
Play online with Vite 8 using Vite.new or build the Vite app locally by turning on your favorite framework pnpm create vite. See the Getting Started guide for more information.
We invite you to help us improve Vite (including over 1.2K contributors to Vite Core), our dependencies, or the plugins and projects in the ecosystem. Learn more on our contribution guide. A good way to get started is by testing issues, reviewing PRs, sending test PRs based on open issues, and supporting others in discussions or White Land’s help forum. If you have any questions, join our Discord community and talk to us in the #contribute channel.
Stay updated and connect with others building on top of Vite by following us on BlueSky. xOr mastodon.
rolldown-powered white
Problem
Since its earliest versions, Vite depended on two different bundlers to meet different requirements. ESBuild handled fast compilation during development (dependency pre-bundling and TypeScript/JSX transforms) which made the development experience feel instant. Rollup handles production bundling, chunking, and customization, powering the entire Wit plugin ecosystem with its rich plugin API.
This dual-bundler approach served Vitae well for years. This allowed us to focus on developer experience and orchestration rather than restarting parsing and bundling from scratch. But it came with compromises. Two separate change pipelines means two separate plugin systems and an increasing amount of glue code required to keep the two pipelines in sync. Over time edge cases of inconsistent module handling accumulated, and each alignment fix in one pipeline risked causing differences in another.
Solution
Rolldown is a Rust-based bundler built by the VoidZero team to address these challenges. It was designed with three goals:
- Display: Written in Rust, rolldown operates at native speed. In benchmarks, this rollup is 10–30 times faster than the matching asbuild performance level.
- Compatibility: Rolldown supports the same plugin API as Rollup and Vite. Most existing Vite plugins work with Vite 8 out of the box.
- advanced features: A single unified bundler unlocks capabilities that were difficult or impossible with a dual bundler setup, including full bundle mode, more flexible chunk partitioning, module-level persistent caching, and module federation support.
sustainability journey
Migration in the rolldown was deliberate and community-driven. First, a different rolldown-vite The package was released as a technical preview, allowing early adopters to test the integration of the rolldown without affecting the stable version of Vite. The feedback from those early adopters was invaluable. They pushed the integration through real-world codebases of every shape and size, uncovering edge cases and compatibility issues that we could address before a wider release. We’ve also set up a dedicated CI suite to validate keynote plugins and frameworks against the new bundler, which catches regressions early and builds confidence in the migration path.
In December 2025, we shipped Vite 8 beta with fully integrated rolldown. During the beta period, Rolldown itself progressed from beta to release candidate, with continued improvement by testing and feedback from the White community.
real world performance
During the preview and beta phase of rolldown-viteSeveral companies reported measurable reductions in production build times:
- linear: Production build time reduced from 46 seconds to 6 seconds
- Ramp: 57% reduction in construction time
- mercedes-benz.io: Reduction in construction time up to 38%
- Bihiv: 64% reduction in construction time
For larger projects, the impact may be particularly noticeable, and we expect to see further improvements as Rolldown continues to evolve.
An integrated toolchain
With Vite 8, Vite becomes the entry point to an end-to-end toolchain with closely collaborating teams: the build tool (Vite), the bundler (Rolldown), and the compiler (Oxc). This alignment ensures consistent behavior across the entire stack, from parsing and resolution to transformation and minification. It also means that we can rapidly adopt new language specifications as JavaScript evolves. And by integrating deeply across all layers, we can advance optimizations that were previously out of reach, such as leveraging Oxy’s semantic analysis for better tree-shaking in rolldown.
None of this would have been possible without the broader community. We’d like to extend our deepest thanks to the framework teams doing the testing (Swelterkit, React Router, Storybook, Astro, Next, and many others). rolldown-vite Filed quick, detailed bug reports, and worked with us to resolve compatibility issues. We’re equally grateful to every developer who tried the beta, shared their build time improvements, and reported rough edges that helped us improve this release. Your willingness to test the migration on real projects helped make the change rolldown easier and more reliable.
node.js support
Vite 8 requires Node.js 20.19+, 22.12+, same requirements as Vite 7. These categories ensure support for Node.js require(esm) Without any flags, White was allowed to be distributed only as ESM.
additional features
In addition to rolldown integration, Vite 8 includes several notable features:
-
Integrated DevTools: vitae 8 cruisers
devtoolsOption to enable Vite Devtools, developer tooling for debugging and analysis. Vite Devtools provides deep insight into your Vite-powered projects straight from the dev server. -
built-in tsconfig
pathsHelp: Developers can enable TypeScript path alias resolution by settingresolve.tsconfigPathsTotrue. It has a low performance cost and is not enabled by default. -
emitDecoratorMetadataHelp: Vite 8 now has built-in automated support for TypeScriptemitDecoratorMetadataoption, removing the need for external plugins. See feature page for details. -
Wassam SSR Support:
.wasm?initImports now work in SSR environments, extending Vite’s WebAssembly feature to server-side rendering. -
Browser console forwarding: The Vite 8 browser can forward console logs and errors to the dev server terminal. This is particularly useful when working with coding agents, as runtime client errors appear in the CLI output. enable it
server.forwardConsoleWhich activates automatically when the coding agent is detected.
@vitejs/plugin-react v6
With White 8, we are releasing @vitejs/plugin-react v6. React Refresh uses the plugin Oxc for transforms. Babel has no more dependencies and the installation size is smaller.
For projects that need a React compiler, v6 provides one reactCompilerPreset assistant who works with @rolldown/plugin-babelProvides a clear opt-in path without burdening you with default setup.
See the release notes for more details.
Note that v5 still works with Vite 8, so you can upgrade the plugin after upgrading Vite.
looking ahead
Rolldown integration opens the door to improvements and customizations. We are working further on:
-
full bundle mode (Experimental): This mode bundles modules during development, similar to a production build. Initial results show 3x faster dev server startup, 40% faster full reload, and 10x fewer network requests. This is especially impactful for larger projects where the disjointed development approach limits scaling.
-
raw AST transfer: Allows JavaScript plugins to access Rust-built ASTs with minimal serialization overhead, bridging the performance gap between Rust internals and JS plugin code.
-
Native magicstring converts:Enables custom transformations where the logic remains in JavaScript but the string manipulation calculations run in Rust.
-
Stabilizing Environment API: We are working to make the environment API stable. The ecosystem has started regular meetings to better collaborate together.
installed size
We want to be transparent about changes to Wait’s install size. The Vite 8 itself is about 15 MB larger than the Vite 7. This comes from two main sources:
- ~10MB from LightningCSS: Previously an optional peer dependency, LightningCSS is now a common dependency to provide better CSS minification out of the box.
- Rolldown to ~5 MB:The rolldown binary is larger than asbuild+rollup primarily due to performance optimizations that give a speed boost compared to the binary size.
We will continue to monitor and work to reduce install sizes as the rolldown matures.
migrate to vitae 8
For most projects, upgrading to Vite 8 should be a seamless process. We have created a compatibility layer that automatically converts existing esbuild And rollupOptions Configuration for their rolldown and OXC counterparts, so many projects will work without any configuration changes.
For larger or more complex projects, we recommend a sequential migration path: Switch to first vite till rolldown-vite Package on Vite 7, then upgrade to Vite 8 to isolate any rolldown-specific issues. This two-step approach makes it easy to identify whether a problem comes from a bundler change or from other Vite 8 changes.
Please review the detailed migration guide before upgrading. The full list of changes is in the Vite 8 changelog.
Thanks, Rollup and Sbuild
As Vite moves toward rolldown, we’d like to take a moment to express our deep gratitude to the two projects that made Vite possible.
Rollup has been Vite’s production bundler since its inception. Its beautiful plugin API design proved so well-thought-out that Rolldown adopted it as their own, and Vite’s entire plugin ecosystem exists because of the foundation laid by Rollup. The quality and thoughtfulness of Rollup’s architecture shaped the way Vite thinks about extensibility. Thank you to Rich Harris for creating Rollup, and to Lucas Taggert-Atkinson and the Rollup team for maintaining and developing it, which has had such a lasting impact on the web tooling ecosystem.
ESBuild has driven Vite’s remarkably fast development experience since its early days: dependency pre-bundling, TypeScript and JSX transforms that complete in milliseconds instead of hundreds. ESBuild proved that build tools could be lightning-fast, and its speed set the standard that inspired an entire generation of Rust and Go-based tooling. Thank you, Evan Wallace, for showing us all what was possible.
Without these two projects, Vitae would not exist as it does today. Even as we move forward with the rolldown, the impact of Rollup and SBuild is deeply embedded in Vite’s DNA, and we are grateful for everything the ecosystem has given us. You can learn more about all the projects and people on which Vite depends on our gratitude page.
approvals
Wight 8 was led by the Safi-Red and Wight team with the help of a broad community of contributors, downstream maintainers and plugin authors. We would like to thank the Rolldown team for their close collaboration in making Rolldown-powered White 8 possible. We are also especially grateful to everyone who participated rolldown-vite Preview and Vite 8 beta period. Your testing, bug reports, and feedback made the rolldown migration possible and shaped this release into something we are proud of.
Void is brought to you by VoidZero in partnership with Bolt and NuxtLabs. We’d also like to thank Vite’s GitHub sponsors and our sponsors on Vite’s Open Collective.
<a href