Pro
Beat report Published 39d ago ·

Nuxt 4.5 moves its build layer to Vite 8 and Rsbuild while staging the jump to Nuxt 5

Nuxt 4.5 is an unusually heavy minor: Vite 8, an Rspack builder rebuilt on Rsbuild, experimental SSR streaming, and stable error codes, plus groundwork for Nuxt 5. It lands as Nuxt 3 reaches end-of-life on July 31.

By Stackmaven

Nuxt shipped 4.5 on July 18, and the team is calling it its biggest release in a while, which is unusual language for a minor version. The reason is that most of the work sits underneath the framework rather than in its public API: a jump to Vite 8, an Rspack builder rebuilt on top of Rsbuild, and a stack of internal changes explicitly staged for the eventual Nuxt 5. It reads less like a feature drop and more like Nuxt moving its foundations while the surface stays still.

What shipped

The headline is the build layer. Nuxt now runs on Vite 8, which brings faster cold starts and the Rolldown-powered internals, Rolldown being the Rust-based bundler Vite is migrating to, that the wider ecosystem has been moving toward. For most projects the team frames this as a transparent upgrade, with the caveat that custom Vite plugins are worth checking against the migration guide. The alternative builder got a parallel overhaul: the Rspack option is now on Rspack 2 and rebuilt on Rsbuild, the higher-level build tool from the same team, running in middleware mode rather than the old webpack dev middleware. The public switch is unchanged, so builder: 'rspack' still selects it, and the change is invisible to configuration while modernizing what happens beneath it.

The most consequential new capability is experimental SSR streaming. Instead of buffering an entire server-rendered page before sending it, Nuxt can now flush the HTML shell immediately and stream the rest as Vue renders it, which improves time to first byte, the delay before a browser receives the first bytes of a response. It disables itself automatically for bots and crawlers, and the team is explicit about the trade-off: any logic that mutates the response after rendering has started cannot reach the client, so it needs testing before it goes near production. Marking it experimental is the right call, but for content and commerce sites where perceived load speed is a conversion lever, it is the feature in this release most worth trialing.

Nuxt also introduced stable error codes, identifiers like NUXT_E1001 attached to its warnings and errors, each carrying an explanation and a suggested fix, with the verbose text stripped from production builds. It is a small quality-of-life change that pays off in the moment a build fails late at night: a searchable code beats a wall of stack trace. A handful of smaller additions round it out. A new useLayout composable gives reactive access to the resolved layout for a route, named views let a single route render different files into multiple outlets through a name@view.vue filename convention, and useFetch and useAsyncData gained an enabled option that holds a request until its preconditions are met, which removes a common pattern of manual guards around dependent fetches.

A bridge release with a deadline

The framing that makes sense of 4.5 is that it is a bridge. Much of the release is groundwork the team says is meant to shrink the gap between Nuxt 4 and the eventual Nuxt 5: core dependencies like unhead and unctx moved to their v3 lines, the framework’s own build switched to tsdown, and a stable internal build-output contract now allows type-checking without a full build. None of that shows up in an app’s code, but it is the unglamorous work that determines how painful the next major turns out to be.

It also arrives with a deadline. Nuxt 3 reaches end-of-life on July 31, 2026, and the team is positioning 4.5 as one of the last few 3.x-era releases. A maintenance patch, 3.21.9, ships alongside with backported fixes, but headline items like Vite 8 are v4-only. For teams still on Nuxt 3, that puts a firm date on a migration that has been easy to defer. The message underneath the release notes is that the on-ramp to 4 is as gentle as Nuxt can make it, and the window to take it is closing.

What’s worth watching

The open question is how the experimental pieces harden. SSR streaming is the one to track: its payoff is real, but the response-mutation caveat means it will likely take a few release cycles of real-world use before it becomes a safe default rather than an opt-in for teams that can test it thoroughly. The build-layer change is lower risk but worth monitoring for edge cases in projects with custom Vite plugins or the Rspack builder, where “transparent upgrade” tends to hold for most and break for a few.

The larger thread is the march toward Nuxt 5. A minor release that spends most of its budget on internal contracts and dependency bumps is a team trying to make its next major boring, in the good sense. Over the next 90 days, the signals to track are how quickly SSR streaming moves out of experimental, whether the Vite 8 migration produces plugin fallout across the ecosystem, and how many Nuxt 3 projects actually move before the end-of-life date. Stackmaven’s follow-up coverage will land on or around October 17.

Sources cited
  1. Nuxt 4.5 release announcement (Nuxt Blog) nuxt.com
  2. nuxt@4.5.0 release notes (GitHub) github.com
esc