Next.js is React with the missing pieces added.
React alone is a UI library. Next.js is a full framework built on top of it — routing, rendering, and infrastructure decisions made for you.
What each one actually is
A production framework built on React — with routing, SSR, and file-based structure.
Next.js takes React and wraps it in a production framework: file-based routing, server rendering, static generation, image optimisation, and edge runtimes. It's the default choice for most new React web projects.
The underlying JavaScript library for building interactive user interfaces.
React is the UI library at the core. It handles components and state. Everything else — routing, data fetching, rendering strategy — is on you (or your framework of choice).
Pick your scenario, see the recommendation
SEO + performance out of the box.
You may already have a routing / SSR strategy.
Static generation + ISR are built-in.
SPA is fine; framework overhead not needed.
The full grid
| Dimension | Next.js | React |
|---|---|---|
| Type | Framework | UI library |
| Routing | Built-in, file-based | You choose or build |
| Server rendering | Built-in | Requires setup |
| Image optimisation | Built-in | Manual |
| Data fetching | Server components + fetch | You choose |
| Hosting | Edge/serverless-friendly | Any |
| SEO out of the box | Yes — server-rendered | No — needs a framework |
| Learning curve | React + Next-specific conventions | React alone |
| Interactive apps | Excellent | Excellent |
| Static sites | Excellent | Requires a build setup |
How they compare on the things that matter
An honest look at both sides
- +Batteries-included framework
- +SEO + perf defaults
- +Modern rendering options
- +One production story
- −Framework-specific patterns to learn
- −Some conventions are opinionated
- +Minimal — you choose everything
- +Works with any framework
- +Massive ecosystem
- −Requires framework decisions before you ship
- −SEO needs extra setup
Nuanced recommendations, not blanket ones
You avoid dozens of setup decisions.
You already have infrastructure.
Real HTML on first response.
Framework overhead is unnecessary.
Rendering mode cheat sheet
Choosing Next.js is choosing rendering strategies. Here is when each mode wins.
| Mode | When | Watch-out |
|---|---|---|
| SSG (static) | Content rarely changes; huge scale | Rebuild time on large sites |
| ISR (revalidate) | Content updates on cadence | Cache invalidation edge cases |
| SSR (per-request) | Personalised, gated, or session-based | Latency budget + server cost |
| RSC (server components) | Reduce client JS; data-close render | Framework-locked pattern |
| CSR (client) | Highly interactive shells, dashboards | Worse SEO if it's a public page |
| Streaming + Suspense | Slow deps below the fold | Requires care with third-party JS |
When plain React is the honest answer
- Behind-login app with no SEO surface
Vite + React is faster to develop and simpler to deploy. Next.js SSR earns nothing here.
- Embedded in an existing site
A React island in someone else's page shouldn't drag in a whole framework.
- Your team knows React deeply but not Next.js
Learning the framework mid-project is where most projects sink.
- Static output to a CDN with no server
Vite → S3/Cloudflare Pages ships in a day; Next.js is overkill unless you need its rendering modes.
What we hear most often — and what's actually true
Next.js is built on React. They're layers of the same stack.
For internal tools or embedded UIs, plain React with a small framework may be simpler.
Not really — you need at least routing and SSR/SSG for real websites.
Frequently asked questions
Yes — Next.js is React with conventions layered on top.
Both — React is the underlying library; Next.js is Vercel's flagship framework and has strong backing.
We default to Next.js on TanStack Start for new client work; plain React for embedded UIs and specific tools.
Yes — Remix and Next.js are the two major frameworks. TanStack Router / Start is a third strong option.
Not sure which to pick? Let's decide together.
A 30-minute call is enough for us to give you a recommendation — no pitch.