In 2026, "React vs Next.js" is no longer a religious war. Both are great, neither is always right, and the choice has concrete consequences for Core Web Vitals, hiring, and infrastructure cost. The trick is matching the framework to the job.
TL;DR: Pick Next.js when SEO, streaming, or edge matter (SaaS marketing, e-commerce, content). Pick plain React + Vite when you're building a pure-JS app behind auth (admin dashboards, internal tools, embedded widgets). Refusing one because of familiarity with the other is an expensive habit.
What has actually changed in 2026
- React 19 is stable. Actions, useOptimistic, and the ref-as-prop model have matured.
- Next.js 15 defaults to App Router + React Server Components + Turbopack. SSG/ISR/SSR/streaming coexist per-route.
- Vite 5 plus React 19 is a genuinely great plain-SPA stack.
- Edge runtimes (Vercel, Cloudflare Workers, Deno Deploy) are table stakes for any customer-facing content site.
When Next.js wins
SEO-critical surfaces
Marketing sites, e-commerce, content hubs, docs. You want server-rendered HTML with good Core Web Vitals out of the box, automatic sitemap + metadata, and image optimisation. Next.js gives all of this for free; replicating it in Vite is weeks of glue code.
Mixed SSR/SSG/ISR on the same domain
If the same site has both public pages (SSG) and authed dashboards (SSR or client-rendered), Next.js routes this cleanly. Vite forces you to set up two apps.
Streaming data to long-loading pages
RSC + Suspense streams the first paint fast while expensive data resolves. Huge CWV win on content-heavy pages.
Edge by default
Vercel Edge / Cloudflare Workers deploy in minutes. Vite needs an external server and manual edge config.
When plain React + Vite wins
Authed-only SPAs
Admin dashboards, internal ops tools, partner portals. Nobody indexes them. You pay Next.js's server-rendering complexity tax for zero SEO benefit.
Embedded widgets
Drop-in checkout, live-chat bubble, analytics widget, anything shipped inside a third-party page. Vite's build output is cleaner for shipping a single-file widget.
Truly static sites
A small marketing site that's 5 pages and changes monthly doesn't need ISR. Static HTML + Vite builds in 3 seconds.
Teams allergic to framework magic
RSC is conceptually new. Some teams prefer clear client/server boundaries with a separate API; Vite + React + tRPC or Hono gives that.
Honest trade-offs
| Dimension | React + Vite | Next.js 15 |
|---|---|---|
| Setup time | 5 minutes | 5 minutes |
| Cold-start dev speed | Excellent | Excellent (Turbopack) |
| SEO for public pages | Manual | Excellent out-of-box |
| Deploy target | Any | Vercel ideal, others good |
| Learning curve (RSC) | N/A | Real; takes 2 weeks |
| Bundle size for authed-only | Smaller | Some RSC overhead |
| Hiring pool | Huge (generic React) | Huge (growing) |
The hiring angle
In 2026, the median React engineer you hire has used both. Senior engineers who refuse one outright are a signal to screen. For rare skill premiums: RSC-fluent engineers cost ~10% more than generic React engineers; Vite build-pipeline specialists are a niche worth paying for on custom-build SPAs.
Infra cost
Next.js on Vercel Pro typically runs £100–£400/month for a medium-traffic SaaS site. A Vite SPA on Cloudflare Pages or S3+CloudFront is usually under £30/month for the same traffic because there is no server compute. If infra cost matters disproportionately to you (bootstrapped, pre-revenue), the Vite path is cheaper. Most funded startups don't care about that £300/month delta.
What we ship most often
For SaaS with a marketing site and an authed product: Next.js 15 for the marketing + auth surface, plain React inside the product shell for performance-critical dashboards. Hybrid architectures are underrated.
FAQ
Is Next.js overkill for a small site?
Not really — "small" used to mean "bundled server complexity"; in 2026 Next.js deploys to Vercel Edge with zero ops overhead. The overkill risk is conceptual, not operational.
Can I migrate a Vite SPA to Next.js later?
Yes, but it's a 2–4 week project for a mid-size app. Better to start Next.js if you expect to need SEO or SSR within 12 months.
Should I adopt RSC on day one?
If you're building new on Next.js 15, yes — App Router is the default and going back to Pages Router forfeits the stream/cache work you'd otherwise get.
Next step
If you're unsure which to pick for a specific product, we'll give you a one-call recommendation. Hire Next.js developers from Krapton, hire React developers, or read our website development services page for how we structure front-end engagements.