Next.js vs React
Not either or. The question is whether React needs a server.
Next.js is a framework built on React, so this is really a choice between React with a server and React as a single-page app. Choose Next.js when pages must be found on Google or in AI answers. A plain React app built with Vite is enough for a tool that lives behind a login. All nine systems on our work page use Next.js.
Updated · Acasa Labs
At a glance
Next.js and React (SPA), side by side.
| Dimension | Next.js | React (SPA) |
|---|---|---|
| What it is | Next.jsA full framework on React: routing, rendering, and a server | React (SPA)A UI library, usually bundled with Vite into a single-page app |
| Rendering | Next.jsServer components, static pages, and server rendering per route | React (SPA)In the browser, after the JavaScript loads |
| Search and AI crawlers | Next.jsGet full HTML on the first request | React (SPA)Get an empty shell unless you add prerendering |
| Routing | Next.jsFile-based App Router, built in | React (SPA)Your choice, such as React Router or TanStack Router |
| Backend | Next.jsRoute handlers and server actions in the same app | React (SPA)A separate API is always needed |
| Hosting | Next.jsA Node server, Vercel, Cloud Run, Firebase App Hosting, or static export | React (SPA)Any static file host or CDN |
| Complexity | Next.jsMore concepts: server and client components, caching | React (SPA)Fewer concepts; everything runs in the browser |
| Best for | Next.jsMarketing sites, SaaS products, and apps with public pages | React (SPA)Dashboards and internal tools behind a login |
01
What the comparison really is
Every Next.js app is a React app. Components, hooks, and state work the same way. What Next.js adds is everything around React: a router, a server that renders pages, a build that splits code per route, image handling, and a place to put backend code. The React team itself now recommends starting new apps with a framework, and Create React App, the old default for single-page apps, has been deprecated.
So the real question is whether your app benefits from a server. If it does, a framework such as Next.js gives you one. If it does not, a single-page React app built with Vite is simpler and perfectly respectable.
02
When Next.js is the better choice
Pick Next.js when people need to find the pages. A single-page app sends search engines and AI crawlers an empty shell and asks them to run JavaScript. Some do, some do not, and none do it as well as reading HTML. Next.js sends the finished page.
Pick it when first load speed matters, especially on phones. Server components render on the server and send less JavaScript, so a visitor on a slow connection sees content sooner.
And pick it when you want the backend close to the frontend. Server actions and route handlers can cover forms, webhooks, and simple APIs without a second service, and a CMS like Payload can run inside the same app.
03
When a plain React app is the better choice
Pick a single-page React app for a tool that lives entirely behind a login: an internal dashboard, an admin panel, or a client app for an existing API. Nobody searches for those pages, and once the app is loaded, a single-page app feels fast.
Pick it when you already have a backend in another language, such as FastAPI or Django, and want the frontend to be static files on a CDN. There is no Node server to run, patch, or pay for.
And pick it when the team is small and new to React. A single-page app has fewer concepts: no server and client component boundary, no server caching to reason about, and everything runs in one place.
04
The costs of Next.js, stated plainly
Next.js is more to learn. The split between server and client components, data caching, and where code runs are real concepts a team has to understand, and mistakes show up as slow pages or confusing bugs. Most slow Next.js sites are slow because of what was put in them, not the framework.
It also needs somewhere to run. Static export removes the server, but most Next.js apps need a Node runtime on Vercel, Cloud Run, Firebase App Hosting, or your own machines. Next.js is open source and runs fine off Vercel, but that is a decision to make on purpose.
05
Our default, and why
We default to Next.js because most of the products we build need both public pages that rank and an app people log into, and one framework for both is simpler than two. We have not shipped a standalone single-page React app on our work page; even our dashboards for the trading platform and Acasa Sentinel are Next.js. For a pure internal tool on an existing API, we would still consider a Vite single-page app and tell you if it fits better.
From production
Next.js across sites, products, and dashboards.
Pages built to be found
Siona JewelsSiona Jewels has structured data on every page, a robots.txt that welcomes AI crawlers by name, and an llms.txt and sitemap generated from Payload CMS, so a new design is in both without a deploy.
A product with a separate AI backend
NoteTubeNoteTube's Next.js web app is one of five surfaces on one backend. Model calls stay in a FastAPI service, so the web app never holds an AI key.
A gallery with server-only writes
The Sharp InteriorsThe Sharp Interiors runs on the Next.js App Router with Firebase. Separate client and admin SDKs mean writes only happen on the server.
A dashboard behind a login
Acasa SentinelAcasa Sentinel's operator console is Next.js with Leaflet maps, over a FastAPI service. This is the kind of app a single-page React app could also have served.
How we choose
The four questions we ask before choosing
Public pages, SEO, or a backend inside the web app point to Next.js. A logged-in tool on an existing API, served as static files, points to a React single-page app.
- 01Will anyone find these pages through Google or an AI assistant?
- 02Is there already a backend, and in which language?
- 03Do visitors arrive on slow phones and connections?
- 04Who will run the server, and is a static host simpler?
Questions
Next.js vs React, asked often.
Is Next.js better than React?
Next.js is React plus a framework. It is better when you need server rendering, SEO, or a backend in the same app, and unnecessary for a simple tool behind a login.
Is a React single-page app bad for SEO?
It is weaker. Crawlers get an empty page and must run JavaScript to see content, which many AI crawlers do not do. Server rendering or prerendering fixes that.
Can we move our React app to Next.js?
Yes, usually route by route. Components carry over; routing, data loading, and anything that touches the browser on first render need changes.
Do we have to host Next.js on Vercel?
No. Next.js is open source and runs on any Node host, on Cloud Run, on Firebase App Hosting, or as a static export where the app allows it.
What about Create React App?
It has been deprecated. For a single-page app, use Vite. For anything with public pages, use a framework such as Next.js.
Next.js vs React
Framework or single-page app? Ask first.
Tell us who visits, who logs in, and what backend you have. We will tell you which we would build, and why.