Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Nuxt 4.0 became stable on July 15, 2025. Its headline changes were a new default app/ project layout, refinements to data fetching, more clearly separated TypeScript contexts, and CLI updates. Existing project layouts remain supported, so upgrading does not mean you must move your application code into app/. Nuxt 4 has since advanced: the Nuxt 4.5 announcement, dated July 18, 2026, describes later changes including Vite 8 and Rspack 2.

What Nuxt 4.0 changed

Nuxt described 4.0 as a stability-focused evolution informed by a year of real-world use, rather than a wholesale rewrite. The July 15, 2025 release announcement focused on developer experience and changes to project organization, data fetching, TypeScript, and the CLI. Nuxt’s Nuxt 4.0 announcement also notes that some modules may need updates for compatibility.

A new default project layout, not a required migration

For new projects, Nuxt 4 places application code inside app/. The directory can contain assets, components, composables, layouts, middleware, pages, plugins, and utilities. Separating that code from locations such as node_modules/ and .git/ can help file watchers and give IDEs clearer context about client and server code.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This is a default structure, not a rule imposed on existing projects. Nuxt says existing layouts continue to work without migration. If your current directory arrangement suits your team and tooling, the new folder alone is not a reason to reorganize it.

More predictable data-fetching behavior

In Nuxt 4, calls to useAsyncData or useFetch that use the same key share their data automatically. The release also describes reactive keys that can trigger refetching, cleanup when components unmount, and more control over cached data.

useAsyncData is designed for server-side rendering: Nuxt places resolved responses in its payload so the data can pass from server rendering to the client during hydration without an additional fetch. See the Nuxt 4 useAsyncData documentation for API details. When upgrading, check places where multiple components intentionally or accidentally use the same key, since shared results affect how those calls behave.

Separate TypeScript contexts

Nuxt 4 separates TypeScript project contexts for app, server, shared, and builder code. The current directory-structure documentation describes generated configuration files for app, server, node, and shared projects, referenced through the root project configuration. The aim is to give tooling more relevant context and improve type inference; it is not a guarantee that every project’s types will migrate without adjustment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Nuxt notes that changes to TypeScript setup can reveal issues that were previously hidden. Review the generated configuration and any project-specific TypeScript settings as part of the upgrade. The Nuxt TypeScript configuration documentation explains the generated files and root references.

CLI and development-server internals

The release announcement describes a faster CLI, reuse of the V8 compile cache, native file watching, and socket-based communication between the CLI and Vite development server. These are implementation changes Nuxt announced, not independent benchmark results, so they should not be read as a guaranteed speedup for every project or machine.

Should you upgrade from Nuxt 3?

Nuxt’s upgrade guidance is the right starting point, but whether to schedule the change depends on your project’s modules, TypeScript configuration, data-fetching patterns, and ability to run a full build and test suite. Use this checklist before choosing a migration window:

  • Project layout: Decide whether to keep your current structure or adopt the app/ default. Nuxt does not require existing projects to move.
  • Modules: Check compatibility for the modules your app uses; Nuxt’s release announcement says some may need further updates.
  • TypeScript: Review custom configuration and generated project references, and be prepared to address newly surfaced type issues.
  • Data fetching: Inspect repeated useAsyncData and useFetch keys, reactive-key behavior, caching, and cleanup assumptions.
  • Verification: Make sure you can build the app and run its tests after the upgrade.

This is a project-level decision, not a blanket requirement to change directory structure. Nuxt’s release announcement points Nuxt 3 users to the upgrade guide for details about potentially affected parts of an app.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to upgrade

  1. Read the upgrade guide first. Identify framework, module, TypeScript, and application-specific changes relevant to your project before changing dependencies.
  2. Run Nuxt’s upgrade command: npx nuxt upgrade --dedupe. The --dedupe option is included in Nuxt’s stated upgrade command.
  3. Optionally try the Codemod recipe. Nuxt offers a Codemod recipe for many migration steps. It does not cover every possible change, so review its changes rather than treating it as a complete migration.
  4. Build and test the application. Check the production build and your test suite, then investigate module compatibility or TypeScript errors before deploying.

Nuxt’s recommendations and caveats are in its Nuxt 4.0 announcement. For command and migration details, follow the upgrade guide linked there.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Nuxt 4.0 in today’s release context

Nuxt 4.0’s stable release date is July 15, 2025; that date does not mean 4.0 is still the latest Nuxt 4 release. Nuxt’s announcement for 4.5, dated July 18, 2026, lists Vite 8 and Rspack 2 upgrades, experimental SSR streaming, a stable error-code system, and new composables and conventions. Those are later-release developments, not features to attribute to the original 4.0 launch. See Nuxt’s Nuxt 4.5 announcement for that release’s details.

The original release was also covered in the July 22, 2025 newsletter Bytes #410, “Cage-free Nuxt 4.0”. Nuxt’s own announcement captures its restrained approach in Daniel Roe’s words: “In general, we aim for a hype-free approach to releases.”

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.