Nuxt vs Next: the meta-framework decision in 2018.
Two frameworks. Two ecosystems. Same pitch — server-rendered, file-based, batteries included. After shipping production work in both this year, here's the head-to-head we keep coming back to and the decision tree we use on new briefs.
Every new project conversation starts with the same forking decision. Vue + Nuxt, or React + Next? Both reached real maturity this year — Nuxt hit v2 in September, Next is on v7. We've shipped client work in both ecosystems across the last twelve months. Here's the deep version of how we actually choose, with the trade-offs that don't make it into the framework comparison blog posts.
Feature comparison, at a glance
| Feature | Nuxt 2 | Next 7 |
|---|---|---|
| Underlying framework | Vue 2 | React 16+ |
| Server-side rendering | Default | Default |
| Static site generation | Yes (nuxt generate) | Yes (next export) |
| File-based routing | Yes, with nested layouts | Yes, flat |
| Data fetching hook | asyncData / fetch | getInitialProps |
| Built-in store | Vuex preconfigured | Bring your own (Redux, MobX, …) |
| Modules ecosystem | 70+ official + community modules | Plugins, fewer conventions |
| CLI scaffolding | create-nuxt-app with presets | create-next-app, minimal |
| Default styling | CSS / SCSS / preprocessors out of box | CSS-in-JS leaning |
| Auto-imported components | Optional (Nuxt 2.13+) | No, manual imports |
What they agree on
- 01Server-side rendering as the default. SEO works out of the box for both.
- 02File-based routing — drop a file in /pages, get a route. Trivial to onboard new engineers.
- 03Data-fetching hooks tied to the navigation lifecycle. Different names, same idea.
- 04Static export when the brief doesn't need a backend at all.
- 05Code splitting and lazy loading without any explicit configuration.
- 06First-class TypeScript support (Nuxt via the @nuxt/typescript module; Next built-in from v6).
Where they differ, properly
- 01Nuxt has more convention. Modules, layouts, middleware, store — it's all there before you ask. That's a 30% productivity boost for the kind of CMS-shaped sites we ship most of.
- 02Next is closer to vanilla React. You bring your own decisions about styling, state, data layer. That's freedom if you have strong opinions; it's friction if you don't.
- 03The Vue ecosystem is smaller but more cohesive. Vue Router, Vuex, Vue CLI, Nuxt — one team's vision, mostly.
- 04The React ecosystem is larger but more chaotic. Three competing routers, six competing state libraries, every team having different conventions for the same problem.
- 05Nuxt's docs feel like one team wrote them. Next's docs are good — but the canonical answer to most questions is on Stack Overflow, not in the docs.
- 06Module authoring — Nuxt's module API is genuinely excellent and a real moat for the ecosystem.
How we actually pick
- 01Brand sites and content-heavy products — Nuxt. The conventions save weeks.
- 02Bespoke client work where the team is React-native and the brief is bespoke — Next.
- 03Anything with a marketing team that will edit content — Nuxt + Content, no contest.
- 04Heavy commerce sites — leaning Next, because the React component ecosystem for commerce widgets is deeper.
- 05PWAs — Nuxt, because @nuxtjs/pwa is best-in-class.
- 06When the client has a React team in-house — Next, every time. The handover matters more than our preference.
The framework conversation in 2018 is not Nuxt vs Next. It's 'a framework with batteries included' vs 'a framework with an opinionated middle and a thousand options on each side'. The right answer depends on whether you'd rather argue about config or write features.
Where we expect both to be in two years
- 01Nuxt 3 is being teased for 2020. Expected to be Vue 3 native, with a complete rebuild of the underlying server engine. The roadmap looks ambitious; we'll see.
- 02Next is moving fast — Vercel (formerly Zeit) is investing heavily, and Next 8 is rumoured to add automatic static optimisation and incremental static regeneration.
- 03Both will converge on similar feature sets. The differentiator increasingly becomes the underlying framework (Vue vs React) and the ecosystem fit, not the meta-framework itself.
- 04Serverless deploy targets are coming for both, and that changes the deployment story dramatically — pages become functions, cold starts become a thing.
We default to Nuxt. The conventions match the kind of work we do, and the Vue team's release cadence is calm enough to plan around. We'll happily ship Next when the team or the brief asks for it — but the default exists for a reason. Worth re-running this comparison annually; we expect the answer to shift at the edges, not the centre.