Back to BlogTooling

Vite 7 Is Here: Rolldown, Rust-Powered Builds, and What Actually Changed

Vite 7 landed with Rolldown (a Rust-powered bundler), a new Baseline browser target, and dropped Node 18. Here's what changed and how to upgrade your projects.

ViteToolingJavaScriptPerformanceRustBuild Tools
Vite 7 Is Here: Rolldown, Rust-Powered Builds, and What Actually Changed

If you've been anywhere near JavaScript Twitter — or X, or Bluesky, wherever your feed lives these days — you've probably seen the Vite 7 discourse. It dropped in late 2025 and it's a genuinely meaningful release: a Rust-powered bundler, a smarter browser baseline, and a clean break from Node.js 18. Whether you're building a React, Vue, Svelte, or Astro project, this one affects you. Let's break it down.

So What Is Vite 7, Actually?

If you've started a frontend project in the last two or three years, there's a good chance Vite is already quietly powering your dev server and build pipeline. It's the tool that replaced Create React App for most teams, and it's now downloaded 31 million times a week. That's not a niche tool anymore — that's infrastructure.

Vite 7 is the latest major version, and unlike some major releases that are mostly version-bump theater, this one has real substance: a new Rust-based bundler, a redefined browser target, and dropped support for end-of-life Node.js versions.

The Big One: Rolldown Takes Center Stage

The headline feature in Vite 7 is the introduction of Rolldown — a Rust-based bundler being developed as the eventual replacement for Rollup. If you've ever used esbuild and wished it had Rollup's plugin ecosystem, Rolldown is basically that.

What Is Rolldown?

Rolldown is being built by VoidZero (the company Evan You, creator of Vue.js, founded). It aims to be API-compatible with Rollup while running dramatically faster thanks to being written in Rust. The goal is to unify Vite's dev and build pipeline — right now Vite uses esbuild for dev and Rollup for production builds, which can cause subtle behavior differences. Rolldown solves that.

You can try it today as a drop-in replacement. Install the experimental package:

npm install rolldown-vite

Then swap the import in your vite.config.ts:

// Before
import { defineConfig } from 'vite'

// After (drop-in replacement)
import { defineConfig } from 'rolldown-vite'

export default defineConfig({
  // everything else stays the same
})

Real-world results are impressive. GitLab reported up to 100x reduction in peak memory usage during builds. For large apps with thousands of modules, that's not a minor optimization — that's a fundamentally different experience.

Is It Production-Ready Yet?

Rolldown is opt-in for now. It won't become the default bundler until a future Vite release. The team is actively dogfooding it on Vite's own builds and the API is stabilizing, but you should still treat it as experimental for production workloads. For side projects or new greenfield apps? Absolutely worth trying today.

Baseline Widely Available: A Smarter Browser Target

Vite 7 changes its default browser target from 'modules' to 'baseline-widely-available'. This is a subtle but important change that can affect your build output.

Baseline Widely Available is a web standards initiative that marks a feature as stable once it's been supported across all major browsers for at least 30 months. The practical effect: Vite 7's output is a bit more conservative about which cutting-edge JS/CSS features it emits, but targets a well-defined, stable baseline rather than a fuzzy heuristic.

If you need explicit control over your target, set it directly in your config:

export default defineConfig({
  build: {
    // Explicit target override
    target: 'baseline-widely-available',
    // Or pin to specific browsers:
    // target: ['es2021', 'edge88', 'firefox78', 'chrome87', 'safari14']
  }
})

Check your browserslist config too if you have one — it can interact with this setting and produce unexpected results if you're not aware of both.

Node.js 18 Is Gone — Upgrade Now

Node.js 18 hit end-of-life in April 2025, and Vite 7 has officially dropped support for it. The new minimum requirements are:

  • Node.js 20.19+

  • Node.js 22.12+

If you're still on Node 18 in CI/CD, this is your nudge to bump it. Most hosting platforms (Vercel, Netlify, Railway, Fly.io) have Node 20 and 22 available. Update your .nvmrc and engines field in package.json:

{
  "engines": {
    "node": ">=20.19.0"
  }
}

While you're at it, double-check your GitHub Actions node-version too. It's an easy thing to miss until the CI pipeline starts failing.

Vite DevTools Are Coming

One of the more exciting things announced alongside Vite 7: dedicated DevTools are in development. Anthony Fu (the prolific open source contributor behind VueUse, Vitest, Slidev, and about a hundred other things) is collaborating with VoidZero and NuxtLabs on first-class Vite DevTools.

Think module graph visualization, HMR debugging, build analysis, and plugin visibility — all in one place. This is something Webpack had a leg up on for years with bundle analyzer plugins. Having it as a first-class part of the Vite ecosystem is a big deal.

No release date yet, but the project is actively being developed. Watch the Vite GitHub repo for updates.

How to Upgrade From Vite 6

For the vast majority of projects, upgrading is painless:

npm install vite@latest
# or
pnpm update vite
# or
bun update vite

Run your dev server and do a production build. If something breaks, here are the most common culprits:

  • Custom target in your build config conflicting with the new Baseline default

  • Plugins with peer dependencies that haven't updated for Vite 7 yet

  • CI/CD environments still running Node 18 — bump to 20 or 22

  • Any code that relied on the old 'modules' target behavior for edge cases

The official Vite 7 migration guide covers the breaking changes in detail. It's a quick read and worth skimming even if your upgrade goes smoothly.

TL;DR

  • Vite 7 introduces Rolldown, a Rust-based bundler — try it via rolldown-vite package (opt-in for now)

  • Default browser target changed from 'modules' to 'baseline-widely-available' — check your config

  • Node.js 18 is no longer supported — upgrade to Node 20.19+ or 22.12+

  • Vite DevTools are in development (Anthony Fu + VoidZero + NuxtLabs)

  • Upgrading is generally smooth — just watch for target config and CI Node version issues