Skip to main content

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.

What it isNext.jsA full framework on React: routing, rendering, and a serverReact (SPA)A UI library, usually bundled with Vite into a single-page app
RenderingNext.jsServer components, static pages, and server rendering per routeReact (SPA)In the browser, after the JavaScript loads
Search and AI crawlersNext.jsGet full HTML on the first requestReact (SPA)Get an empty shell unless you add prerendering
RoutingNext.jsFile-based App Router, built inReact (SPA)Your choice, such as React Router or TanStack Router
BackendNext.jsRoute handlers and server actions in the same appReact (SPA)A separate API is always needed
HostingNext.jsA Node server, Vercel, Cloud Run, Firebase App Hosting, or static exportReact (SPA)Any static file host or CDN
ComplexityNext.jsMore concepts: server and client components, cachingReact (SPA)Fewer concepts; everything runs in the browser
Best forNext.jsMarketing sites, SaaS products, and apps with public pagesReact (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 Jewels

    Siona 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

    NoteTube

    NoteTube'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 Interiors

    The 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 Sentinel

    Acasa 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.

  1. 01Will anyone find these pages through Google or an AI assistant?
  2. 02Is there already a backend, and in which language?
  3. 03Do visitors arrive on slow phones and connections?
  4. 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.

Ask which one fits

No pitch deck. You own the code from day one.

contact@acasalabs.com