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

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

DimensionReact + ViteNext.js 15
Setup time5 minutes5 minutes
Cold-start dev speedExcellentExcellent (Turbopack)
SEO for public pagesManualExcellent out-of-box
Deploy targetAnyVercel ideal, others good
Learning curve (RSC)N/AReal; takes 2 weeks
Bundle size for authed-onlySmallerSome RSC overhead
Hiring poolHuge (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.

#react vs nextjs#react 19#nextjs 15#frontend framework#saas frontend#app router#react server components