BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Nuxt 4.5: Experimental SSR Streaming, Vite 8 and an Rsbuild-Powered Rspack Builder

Nuxt 4.5: Experimental SSR Streaming, Vite 8 and an Rsbuild-Powered Rspack Builder

Listen to this article -  0:00

Nuxt, the Vue-based full-stack web framework, has released Nuxt 4.5, their "biggest release in a while", shipping with a mix of build-layer upgrades, new runtime features, and a large amount of groundwork for the upcoming Nuxt 5.

Nuxt 4.5 moves to Vite 8, includes a Rspack 2 builder rebuilt on top of Rsbuild, experimental SSR streaming, a stable error code system, and a new useLayout composable.

The headline feature is experimental SSR streaming, which improves Time to First Byte by flushing the HTML shell immediately and then streaming the body as Vue renders it. It is enabled with a single config flag:

export default defineNuxtConfig({
 experimental: {
 ssrStreaming: true,
 },
})

Streaming is automatically disabled for bots and crawlers so search engines still receive fully rendered HTML, and routes using redirect, cache, isr, or swr rules fall back to the buffered renderer.

On daily.dev, one developer warned:

The experimental SSR streaming caveat is the part I’d test first: once the shell is flushed, late status, header, or cookie mutations can’t reach the client, so middleware assumptions become a correctness issue rather than only a performance concern.

Writing on dev.to the author noted that without the streaming it took 2.5 seconds for the server to render the page, and a reader clarified that:

streaming does not shrink the 2.5s server work. it only changes what the browser can paint while that work still runs

Alongside streaming, the release ships a stable error code system built on nostics, where warnings now carry a greppable code such as NUXT_E1001 with a short explanation of why it happened and a concrete fix to try. A new useLayout composable returns a read-only computed ref of the layout resolved for the current route, and named views let a page mount multiple <NuxtPage> outlets using a child@sidebar.vue filename convention. useFetch and useAsyncData also gain a reactive enabled option to gate conditional fetches.

A reported issue showed the new built-in useLayout colliding with Vuetify's composable of the same name, raising a NUXT_B6002 warning, with Roe responding that he was happy to add projects to the ecosystem tests:

if there's a good project to add to https://github.com/nuxt/ecosystem-ci to try and surface issues like this before a release, I'd be more than happy to do so

Developers upgrading should refresh their lockfile with nuxt upgrade --dedupe, since the release pulls in major bumps to unhead v3 and unctx v3. The unhead v3 upgrade introduces type-narrowing for useHead that can be a breaking type change, and the Vite migration guide is worth checking for custom plugins. The upgrade guide covers moving from older versions, and Nuxt 3 reaches end-of-life on July 31, 2026.

The streaming implementation is a pattern seen elsewhere with React, whose Suspense-based streaming server rendering arrived earlier. One commentator framed it as "the same shift React made earlier with Suspense and streaming server rendering," with Nuxt now "catching up."

Nuxt is an open-source framework built on Vue and the Nitro server engine, and can be upgraded following the instructions at nuxt.com.

About the Author

Rate this Article

Adoption
Style

BT