Vite and the Future of JavaScript Tooling

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

At VoidZero, we have been hard at work on building the foundation for a unified toolchain for JavaScript. Over the past year and half, we have reworked everything inside Vite from the ground up, now running on a Rust-powered toolchain containing OXC and Rolldown. In this talk, we will discuss the why, the implications, and the future vision of all this work.

This talk has been presented at JSNation 2025, check out the latest edition of this JavaScript Conference.

FAQ

Vite is a rapidly growing tool that has become a shared infrastructure layer for the next generation of web applications. It is widely used in production by major companies and has a vast ecosystem of tools and frameworks built on top of it.

Vite addresses the fragmentation in the JavaScript ecosystem, where different tools have overlapping duties. It aims to unify the toolchain and reduce decision fatigue for developers by providing a more coherent stack.

Rolldown is a bundler specifically designed for Vite to solve problems related to dependency management and overlapping duties among existing tools. It aims to improve efficiency and performance by integrating tightly with Vite.

Rust is chosen for its balance between performance and memory safety. It has a mature ecosystem for JavaScript tooling and excellent interop with JavaScript, making it suitable for performance-sensitive tasks like parsing and bundling.

Vite+ is an end-to-end toolchain designed to be a drop-in upgrade for existing Vite users. It aims to serve as a comprehensive toolkit for JavaScript development, similar to Cargo for Rust, integrating additional commands and features.

ViteTest offers a feature-complete testing solution that includes browser mode, component testing, and benchmarking. It prioritizes correctness by enforcing test isolation to prevent shared global state issues.

OXC acts as the language toolchain supporting Vite's higher-level components. It includes a parser, linker, resolver, transformer, and minifier, all optimized for performance and designed to work seamlessly with Vite.

TS-down is a library bundler integrated into Vite+ as its library mode. It handles TypeScript DTS generation and bundling efficiently, reducing package size and improving type checking speed.

Vite+ aims to provide a comprehensive plugin interface that allows frameworks to integrate deeply with Vite's toolchain. This enables frameworks to leverage Vite+ features, such as custom test environments and dev tools panels, enhancing their capabilities.

Rolldown provides faster performance, integrates directly with Vite, and offers advanced features such as built-in transforms, node-compatible resolution, and multi-federation support. It also supports Rollup plugins with high compatibility.

Evan You
Evan You
23 min
16 Jun, 2025

Comments

Sign in or register to post your comment.
  • Va Da
    Va Da
    P4
    "framework for frameworks"
Video Summary and Transcription
Evan Yeo discusses Vite's growth, challenges with dependencies like ES Build and Rollup, and the creation of the bundler Rolldown. The JavaScript ecosystem faces fragmentation, but the company aims for a unified JavaScript stack. Rust is chosen for lower-level development, while JavaScript and TypeScript for high-level APIs. Roldown offers advanced bundling features, outperforming existing tools. Integration with Vite leads to tailored optimizations and significant speed improvements. Vite+ development focuses on creating a comprehensive toolkit. VitePlus integrates TS-down for library bundling, ViteTest for testing, and OX-Lint for linting. Future plans include monorepo awareness, build orchestration, and framework-like features.

1. Analysis of Vite and JavaScript Tooling

Short description:

Evan Yeo discusses Vite's growth, challenges with dependencies like ES Build, Rollup, and the decision to create the bundler Rolldown. The JavaScript ecosystem faces fragmentation in parsers, transformers, and more, causing decision fatigue but also fostering innovation.

So, hello, everyone. My name is Evan Yeo, and I'm here to talk about Vite and the future of JavaScript tooling. Okay. So, many of you have probably heard of Vite. In the past few years, it's been growing really fast. We're now seeing 29 million weekly NPM downloads and more than 1.1 thousand GitHub contributors. We have a vast ecosystem of tools and frameworks building on top of Vite, including some of the most familiar tools. Companies are using Vite or Vite-based frameworks in production, including some of the biggest names. Today, Vite has become the shared infrastructure layer for the next generation of web applications.

We've been thinking about what we can do to make Vite serve its role better. Vite is far from perfect in its current state. The biggest problem we saw was that Vite relied on different dependencies with overlapping duties. Vite wrapped third-party dependencies, including ES Build, Rollup, and sometimes S3C for transformation. Many of these tools have overlapping duties, are in different languages, and have efficiency problems passing data between them. So, we decided to build a bundler called Rolldown specifically for Vite's goals. As we worked on Rolldown, we delved deeper into the stack and realized the challenge Vite faces reflects the fragmentation in the JavaScript ecosystem.

When looking at the lower-level dependencies a bundler needs, we see fragmentation at every layer in the JavaScript ecosystem. For parsers, transformers, test runners, linkers, formatters, there are numerous solutions leading to decision fatigue. The lack of central guidance in the JavaScript ecosystem allows freedom to explore. The ecosystem is vibrant and active, but the abundance of options can overwhelm newcomers to JavaScript development. This diversity, while challenging, also provides space for innovation and exploration.

2. Fragmentation in the JavaScript Ecosystem

Short description:

The speaker discusses the fragmentation in the JavaScript ecosystem, the need for a unified toolchain, and the company's mission to provide a coherent JavaScript stack. The company works on open-source pieces like Vite, Vitest, Rodan, and RxC, aiming for a unified experience in JavaScript development.

But as we are looking into the work on Rolldown, we started digging deeper into the stack. We realized that in order to build a bundler, we need to also pick and choose what parser we use, what AST we use, what transformer we use, what minifier we use. And when you go down the rabbit hole, you realize the challenge that Vite is facing is really a reflection of the JavaScript ecosystem at large. So, if we look into the bundler and look at all the lower-level dependencies that a bundler needs, we realize that the JS ecosystem actually suffers from fragmentation at every layer. So, for parsers, transformers, test runners, linkers, formatters, all the things that we use at every layer for every task, there are so many different solutions. And it just leads to a lot of decision fatigue. And for the average user who are just getting into JavaScript development, it's probably not the easiest task to decide which one to use.

This is not all bad, right? The JavaScript ecosystem was probably one of the most vibrant ones, the most active ones. And this sort of lack of central guidance results in a freedom to explore. And the abundance of choice was critical for the ecosystem in the early days. These solutions are what helped us to get where we are. We're building more ambitious JavaScript apps than ever before, and these are the tools that helped us get here. But as the language matures, as we arrive on a lot more consensus and conventions on some of these problems, this has led to a complexity tax for everyone. So, I believe it is now a time where JavaScript deserves a unified toolchain.

So, we've been hard at work on this goal at VoiZero, which is a company I have founded. And the mission of the company is really to build a unified JavaScript toolchain to give users a more coherent stack, a coherent experience when we want to just get into it and stop thinking about picking and choosing a bunch of different solutions. There are four major open-source pieces that the company works on, including Vite, Vitest, Rodan, and RxC. At the very top are the framework tools that build on top of the Vite ecosystem. Vite itself is obviously the integration point. Many of these frameworks also use Vitest. Vitest can be used alone in any JavaScript project. You can use it to test backend code. Many projects that are not even using Vite would also use Vitest. So, Vite and Vitest inter-ops more directly with frameworks and end users. And Rodan is the bundler that supports Vite internally. It handles some of the more low-level tasks of bundling your code, optimizing your code, and giving you advanced chunk splitting, etc. At the bottom layer, RxC is the language toolchain that supports all of the higher-level pieces. RxC itself includes the parser, which is at the core. The parser also defines the AST that we use for all these other tasks, such as transformation, linking, formatting, minification, semantic analysis, etc.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Vite: Rethinking Frontend Tooling
JSNation Live 2021JSNation Live 2021
31 min
Vite: Rethinking Frontend Tooling
Top Content
Vite is a next-generation build tool that leverages native ES modules for improved performance. It eliminates the need for bundling and improves hot module replacement. Vite provides an opinionated default configuration while still allowing advanced customization through plugins. It is framework agnostic and can be used for React and other applications. Vite is being adopted by Next.js and Create React App, and integration with Nuxt 3 offers significant speed improvements.
Welcome to Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Welcome to Nuxt 3
Top Content
Nux3 has made significant improvements in performance, output optimization, and serverless support. Nuxt Bridge brings the Nitro engine for enhanced performance and easier transition between Nuxt 2 and Nuxt Read. Nuxt 3 supports Webpack 5, Bytes, and Vue 3. NextLab has developed brand new websites using Docus technology. Nuxt.js is recommended for building apps faster and simpler, and Nuxt 2 should be used before migrating to Nuxt 3 for stability. DOCUS is a new project that combines Nuxt with additional features like content modules and an admin panel.
10 Years of Independent OSS: A Retrospective
JSNation 2024JSNation 2024
33 min
10 Years of Independent OSS: A Retrospective
This talk is a ten-year retrospective into the growth of the Vue.js framework as an open-source project. It highlights the challenges faced by open-source developers, the importance of finding balance and managing scope, and the collaborative nature of the Vue community. The talk also discusses the development of Vite as a build tool and the vision for a unified JavaScript toolchain. It emphasizes the need for community alignment, contributions, and testing, while acknowledging the challenges of bad actors in the open-source community.
What's New in Vite 6
JSNation US 2024JSNation US 2024
29 min
What's New in Vite 6
Watch video: What's New in Vite 6
Vite, a popular build tool for front-end development, has seen significant growth since its public release in 2021. It has been downloaded 12 million times and has over 1,000 contributors. Vite offers benefits such as a powerful dev server, hot module reloading, and a plugin API based on Rollup. However, there are limitations with server-side rendering that require extra code and handling of SSR flags. Vite's environment API allows for cleaner communication between the browser and server, and plugins can configure and customize specific environments. The future plans for Vite include stabilizing the environment API and integrating Rolldown Vite for faster builds. Vite is compatible with various front-end frameworks and is used by projects like Vaku and Vinci. The environment API has potential for per-local builds and building on older versions of Node, but may not be recommended for internationalization purposes.
The Inner Workings of Vite Build
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
The Inner Workings of Vite Build
Welcome to vidBuild, a tool that optimizes your application for production by offering fast hodgemodule replacement and support for various technologies. The build process in vidBuild involves optimizing and minifying assets, bundling JS and CSS, and generating chunks for dynamic imports. The pipeline in vidBuild includes plugins for alias, resolution, CSS modules, and asset handling. Vid is a complete build tool with a flexible plugin system and support from a vibrant community. Vite's plugin API is compatible with Rollup, and Vite aims for simplicity while pushing complexity to the plugin system.
The Eternal Sunshine of the Zero Build Pipeline
React Finland 2021React Finland 2021
36 min
The Eternal Sunshine of the Zero Build Pipeline
For many years, we have migrated all our devtools to Node.js for the sake of simplicity: a common language (JS/TS), a large ecosystem (NPM), and a powerful engine. In the meantime, we moved a lot of computation tasks to the client-side thanks to PWA and JavaScript Hegemony.
So we made Webapps for years, developing with awesome reactive frameworks and bundling a lot of dependencies. We progressively moved from our simplicity to complex apps toolchains. We've become the new Java-like ecosystem. It sucks.
It's 2021, we've got a lot of new technologies to sustain our Users eXperience. It's time to have a break and rethink our tools rather than going faster and faster in the same direction. It's time to redesign the Developer eXperience. It's time for a bundle-free dev environment. It's time to embrace a new frontend building philosophy, still with our lovely JavaScript.
Introducing Snowpack, Vite, Astro, and other Bare Modules tools concepts!