---
title: "Nuxt vs Next, revisited: seven years later."
date: 2025-06-04
url: https://remiam.co.uk/notes/nuxt-vs-next-revisited-2025
tags: [Nuxt, Next.js, Vue, React, Comparisons, Revisited]
read_time_minutes: 8
description: "Nuxt vs Next in 2025 — seven years on from our 2018 comparison. App Router, server components, Nuxt 4, Nitro, and where we now land for client work."
---

# Nuxt vs Next, revisited: seven years later.

*Published 2025-06-04 · 8 min read · by Liam (Remiam)*

We wrote this comparison in 2018. Nuxt and Next have both shipped two major versions, an entire rendering model shift, and a complete rethink of how data fetching works. Time to revisit.

In 2018 we wrote about choosing between Nuxt and Next. The frameworks were genuinely similar — server-rendered Vue or React, file-based routes, opinionated conventions. Seven years on, they've both transformed, and the answer to 'which one' is now more interesting.

## What Next did

Next pivoted hard. The App Router landed, server components became the default, and the mental model fragmented — server components, client components, server actions, edge runtimes. Powerful, but the learning curve got steeper. Vercel's commercial momentum is enormous, but the framework is a different animal than it was.

## What Nuxt did

Nuxt 3 launched in late 2022 on top of Nitro — a deployment-target-agnostic server engine that's quietly one of the best things in the JS ecosystem. Nuxt 4 stabilised the directory conventions, kept the rendering model coherent, and didn't fragment the mental model. Same Vue you wrote last year. Same Composition API. Cleaner build.

## Where each one stands, mid-2025

| Concern | Nuxt 4 | Next 15 |
| --- | --- | --- |
| Rendering model | SSR + SSG + ISR, unified | App Router + server components, fragmented |
| Server engine | Nitro (deploy-anywhere) | Vercel-native, others via adapters |
| Routing | File-based, layouts nest | App Router with parallel + intercepting routes |
| Data fetching | useFetch / useAsyncData | Server components + use() / fetch() |
| Learning curve | Gentle | Steeper after App Router |
| Best fit | Brand sites, content, SaaS, hybrid | React-heavy teams, edge-first apps |

*Nuxt 4 vs Next 15, mid-2025.*

## How we now choose

- Default — Nuxt. The mental model survived two major versions without becoming three frameworks in a trenchcoat.
- Heavy React-native team and a static-export brief — Next still works, but Astro is increasingly the better answer there.
- Edge-heavy server logic — Nitro's preset story is calmer than Next's edge runtime quirks. Nuxt wins.
- Anything where the marketing team will edit content — Nuxt Content + Nuxt Studio is best-in-class. No real Next equivalent.

## What we got wrong in 2018

- We said Next was 'closer to vanilla React'. Today, App Router isn't 'closer to' anything — it's its own thing.
- We said the Vue ecosystem was 'smaller but more cohesive'. The cohesion compounded. Smaller compounded the other way; Vue 3 + Nuxt + Pinia + Nuxt UI feels like one product.
- We undersold the docs gap. It's bigger now, not smaller.

> Where 2018 felt like a coin flip, 2025 feels like a clear default — and the default is Nuxt.

We still ship Next when the brief or team demands it. But where 2018 felt like a coin flip, 2025 feels like a clear default — and the default is Nuxt.

## References

1. [Nuxt 4 — release notes](https://nuxt.com/blog)
2. [Next.js 15 — release notes](https://nextjs.org/blog/next-15)
3. [Nitro — universal server engine](https://nitro.unjs.io/)
