Nuxt 3 End of Life —
EOL, Risk & Migration to Nuxt 4
Nuxt 3 reaches end of life on July 31, 2026. From that date the 3.x line receives nothing further from the Nuxt project — no security patches, no critical bug fixes, no compatibility updates. Nuxt 3.21.10, released on July 27, 2026, was the last release before the date. One trailing patch followed: 3.21.11 shipped 2026-08-05 with bug fixes only, and its release notes say it plainly — “Nuxt v3 is now end-of-life. Please upgrade to Nuxt v4.” Treat 3.21.11 as the final 3.x release and the project’s own closing statement, not as a sign the line is still maintained.
The detail most coverage misses: this deadline has already moved once. Nuxt 3's original end-of-life date was January 31, 2026 — six months after Nuxt 4 shipped, per the project's standard policy. In the v4.3.0 release notes on January 22, 2026, project lead Daniel Roe extended it by a further six months after gathering community feedback on the v3-to-v4 upgrade experience, committing to "continue to provide security updates and critical bug fix releases beyond the previously announced end-of-life date." July 31, 2026 is the end of that extension, and there is no indication a second one is coming.
This page is the reference for Nuxt end-of-life: every version's EOL date and EOL Risk Score™, exactly what stopped being maintained on that date, why upgrading to Nuxt 4 does not buy you a known runway, and the extended-support options if you cannot migrate yet.
Key Dates at a Glance
- Nuxt 3: active support ends 2025-07-16; end of life 2026-07-31
- Nuxt 2: active support ends 2022-11-16; end of life 2024-06-30
- Nuxt 1: active support ends 2018-09-21; end of life 2019-09-21
Nuxt Version EOL Schedule
Nuxt's policy is to support each major version for a minimum of six months after the next major ships. With Nuxt 3 having reached EOL on July 31, 2026, Nuxt 4 is the only maintained generation. Scores below are live EOL Risk Scores™ — click any to see the full breakdown.
| Version | Released | End of Life | Status | EOL Risk Score™ |
|---|---|---|---|---|
| Nuxt 1 | Jan 8, 2018 | Sep 21, 2019 | EOL | 50 |
| Nuxt 2 | Sep 21, 2018 | Jun 30, 2024 | EOL | 50 |
| Nuxt 3 (final: 3.21.11) | Nov 16, 2022 | Jul 31, 2026 | EOL | 35 |
| Nuxt 4 (current) | Jul 16, 2025 | Not set — see below | Supported | 10 |
What Actually Stopped Shipping
"Nuxt 3 is EOL" understates the blast radius, because Nuxt is not a single package. The end-of-life boundary covers the framework and the server stack underneath it. Since July 31, 2026, no 3.x-line fixes have been issued for:
-
01Nuxt 3 itself The framework core — routing, rendering, the module system, and the build pipeline.
-
02Nitro, the server engine This is the part teams forget. Nitro is the server that actually runs your application in production — it handles routing, request handling, and deployment adapters. A vulnerability here is a server-side vulnerability, not a browser-side one, and it will not be patched on the 3.x line.
-
03h3, the HTTP layer The request/response primitives Nitro is built on. Same reasoning: this is code sitting directly on the network edge.
-
04Official modules and bundled dependencies The first-party module ecosystem pinned to Nuxt 3, and the dependency versions the 3.x line locks you to.
That combination is what makes this a different kind of front-end EOL. A pure client-side framework going unsupported exposes your users' browsers. Nuxt going unsupported exposes your server too — Nitro and h3 terminate real HTTP requests. Any team treating this as "just a front-end upgrade we'll get to next quarter" has mis-scoped the risk. For the wider pattern, see why EOL software is a blind spot for CVE scanners.
The Catch: Nuxt 4 Has No Fixed EOL Date
The obvious move is to upgrade to Nuxt 4. It is the right move — but be clear-eyed about what it buys you, because the honest answer is an unknown runway.
Under Nuxt's support policy, Nuxt 4 reaches end of life a minimum of six months after Nuxt 5 is released. Nuxt 5 has not been released. The project's roadmap estimated it for Q1 2026 — an estimate that had already slipped by roughly two quarters as of July 31, 2026, with no ship date announced. Nuxt 4 remained the current line, with 4.5.1 released on July 27, 2026.
So Nuxt 4's EOL date is not "far away". It is undefined: a floating date pinned to an unscheduled release. In practice the slip is good news — every month Nuxt 5 does not ship is another month of Nuxt 4 support — but it is not something you can put in a compliance document or a migration plan. If an auditor asks when your framework stops receiving patches, the accurate answer for Nuxt 4 as of July 31, 2026 is "unknown, and at least six months after an unannounced release."
Nuxt 5 is also expected to bring an upgrade to Nitro v3, which signals that the 4-to-5 jump will not be a trivial version bump either. Budget for it.
Migrating from Nuxt 3 to Nuxt 4
The good news: Nuxt 4 was deliberately a stability-focused release, and the 3-to-4 migration is far smaller than the Vue-2-to-3 or Nuxt-2-to-3 jumps were. Most of the work is mechanical, and the Nuxt team ships codemods that automate the largest piece.
-
01Get current on Nuxt 3 first Move to
3.21.11, the final 3.x release, before attempting the major upgrade. This gets you every deprecation warning and compatibility fix the team shipped in preparation, so you are migrating from the cleanest possible starting point. -
02Run the migration codemods The Nuxt team partnered with Codemod to automate the bulk of the upgrade. Run the full recipe with
npx [email protected] nuxt/4/migration-recipe, or apply them individually —nuxt/4/file-structure,nuxt/4/default-data-error-value, andnuxt/4/deprecated-dedupe-value. -
03Adopt the new
app/directory structure Nuxt 4 defaults to anapp/folder as the source root. Moveassets/,components/,composables/,layouts/,middleware/,pages/,plugins/,utils/, andapp.vueinto it. Leavenuxt.config.ts,content/,layers/,modules/,public/,shared/, andserver/at the project root. This is whatnuxt/4/file-structureautomates. -
04Check your data fetching for shared keys
useAsyncDataanduseFetchnow use a singleton pattern: calls sharing a key share unifieddata,error, andstatusrefs. If two call sites used the same key with different options, that previously worked and now needs reconciling. This is the change most likely to cause a subtle runtime bug rather than a build error — review it by hand. -
05Use the compatibility flags to stage the work You do not have to take every change at once.
srcDir: '.'keeps the old directory layout,experimental.granularCachedData: falserestores the previous data-fetching behaviour, andexperimental.normalizeComponentNames: falsekeeps the old component naming. Ship the upgrade behind these flags, then remove them one at a time. -
06Expect stricter TypeScript Nuxt 4 enables
noUncheckedIndexedAccessby default and generates separate tsconfigs for app, server, node, and shared contexts. This surfaces real latent bugs, but it will produce type errors in code that compiled cleanly under Nuxt 3. Budget time for it rather than being surprised by it.
Extended Support If You Can't Upgrade Yet
For a large Nuxt 3 application — especially one with heavy Nitro customisation, custom deployment adapters, or a long tail of community modules that have not been updated for Nuxt 4 — migration is a real project. That is a legitimate reason it has not happened yet. It is not a reason to run an unpatched HTTP server in production while it proceeds.
Extended (post-EOL) support closes that gap. Specialist vendors maintain security-patched builds of end-of-life lines — backporting fixes for newly disclosed vulnerabilities — so your application stays protected while you migrate on a realistic timeline rather than an emergency one. Coverage for Nuxt currently spans the 2.x and 3.x lines, and more than one vendor operates in this market, which is worth knowing before you accept the first quote you are offered.
Check your whole stack for EOL exposure
Nuxt is one dependency. Check your runtime, build tooling, and the rest of your stack too — free, no signup required.
Scan your stack Check a version Extended support optionsFrequently Asked Questions
Is Nuxt 3 still supported?
No. Nuxt 3 reached end of life on 2026-07-31, at the end of a six-month extension the project granted in January 2026. The 3.x line no longer receives security patches, critical bug fixes or compatibility updates from the Nuxt project; Nuxt 4 is the only maintained generation.
What is the last Nuxt 3 release?
Nuxt 3.21.11, published 2026-08-05 — a bug-fix patch that shipped five days after the end-of-life date and whose release notes state that Nuxt v3 is now end-of-life. Nothing further is planned for the line. Pin to 3.21.11 as the starting point for a Nuxt 4 migration.
When does Nuxt 4 reach end of life?
No date is set. Nuxt’s policy is to support a major version for at least six months after the next major ships, so Nuxt 4’s end of life will be announced relative to Nuxt 5, which has no release date. Nuxt 4 shipped 2025-07-16 and is the current supported version.
Is Nuxt 3 a security risk if I keep running it?
Yes, and more than a typical front-end framework, because Nuxt 3 bundles the server stack: Nitro (the server engine) and h3 (the HTTP layer) terminate real HTTP requests in production and are inside the end-of-life boundary. A vulnerability there is a server-side exposure that will not be fixed on 3.x. Nuxt is not currently named in CISA’s KEV catalog, which is why its risk score is moderate rather than critical — that can change with one advisory.
Is there extended support for Nuxt 3?
Yes. Commercial extended support exists for the Nuxt 3 line — backported security fixes under a paid subscription — and the Nuxt project itself points end-of-life users to that option. It is a bridge for applications that cannot complete the Nuxt 4 migration this quarter, not a substitute for it. Tell us your situation via the form on this page and we will match you with options.
How do I check which Nuxt version I am running?
Run npx nuxi info in the project, or read the nuxt entry in package.json and the resolved version in the lockfile. Anything in the 3.x range is end of life; 2.x has been end of life since 2024-06-30.