Jean Galea

AI, Investing, Health, and Building Businesses

  • Start Here
  • AI & Tech
    • AI
    • Tech
    • Modern Web Stack
    • Business
  • Investing
    • Investing Basics
    • Crypto
    • Stocks
    • P2P Lending
    • Real Estate
    • Calculators
    • Dividends
    • FIRE & Early Retirement
    • European Investing Hub
  • Life
    • Essays
    • Barcelona
    • Padel
    • Health & Fitness
    • Hobbies
    • Family
  • About
    • My Story
    • Projects
    • AI Consultancy
    • Plugins
    • Speaking
  • Blog
  • Community
    • Good Life Collective
    • Daily Driver AI
  • Search

When NOT to Use Next.js

Last updated: October 31, 2026Leave a Comment

This is part of a series on the modern web stack, written from a WordPress developer’s seat for people who’ve built on the web for years and still hit stack terms they can’t define. The goal is literacy, enough that you can read any stack list and know what each piece does.

Each post has a 10-15 minute audio companion, generated with NotebookLM, for the gym or the commute.

Reaching for Next.js on every project is the modern equivalent of installing WordPress on every domain you own. It’s the default for a reason and it usually works, but a project that doesn’t fit the default really doesn’t fit. A brochure site doesn’t need WP Multisite, and a marketing site for one product doesn’t need server components, edge functions and a deploy preview pipeline.

This post is the counterweight to the Next.js one: when it’s the wrong answer, what to reach for instead, and how the alternatives differ once you look past their marketing pages.

People who say “Next.js for everything” have mostly not shipped two of the alternatives in production. People who say “Next.js is bloated” have mostly not shipped Next.js in production. Both takes are louder than useful, and the real answer depends on the shape of the project.

Modern web frameworks differ on three axes. Once you can name them, picking between frameworks stops feeling like fashion.

How much JavaScript ships to the browser

Some frameworks ship the minimum: a static HTML page with small islands of interactivity where needed. Others treat the browser as the application platform and ship a full client-side app. Astro sits at the minimum end. Next.js sits in the middle, with server components first and client islands when needed. A traditional single-page React app on Vite sits at the maximum end.

Where data fetching happens

Next.js App Router, Astro and SvelteKit default to the server. Vite SPAs and classic React with React Router default to the client. Server-default frameworks tend to suit SEO and initial load. Client-default frameworks tend to suit highly interactive applications where the page never really reloads.

How tightly the framework couples to a host

Next.js leans hard toward Vercel, and some features only work well there. SvelteKit and Astro deploy almost anywhere through adapters. Vite-based apps deploy to any static host. The hosting post covers the options in more detail.

Place your project on each axis and the framework mostly picks itself.

When Not to Use Next.js

A few cases where another framework saves you time and frustration.

Content-heavy site with light interactivity: Astro

Marketing sites, documentation, blogs and brochure sites with a contact form are mostly content with the occasional interactive widget. Astro ships the least JavaScript possible and gets out of your way. You can still use React components inside Astro, and it ships them as islands. Less JavaScript, faster pages, simpler deploy.

Astro is static HTML with interactive sprinkles. Next.js is an interactive app with static parts where it makes sense. A personal blog like this one fits the first description better.

Highly interactive app with no SSR needs: Vite and React Router

A tool, dashboard or internal app that lives behind a login and doesn’t need to be indexed doesn’t need Next.js. A plain Vite project with React Router gives you a faster dev server, simpler builds and full control over deployment. There are no server components to wrap your head around and no App Router conventions to follow.

This is the sweet spot for single-page applications, and many ex-Create-React-App projects landed here.

Form-heavy CRUD app on a small team: React Router 7

Remix merged into React Router 7 in late 2024. The combined framework keeps Remix’s strengths: nested routing, form-based mutations, progressive enhancement and server-side data loaders. It reinvents less of how React works than Next.js does and gives you sensible defaults for the web platform.

If your project is built around forms, server actions and traditional request-response patterns rather than an SPA-style interactive UI, React Router 7 competes with Next.js on equal terms. Bundles tend to be smaller, and the mental model feels cleaner if you’re coming from server-rendered PHP.

Smaller bundle, simpler reactivity: SvelteKit

If you’re starting fresh with no React baggage, SvelteKit deserves a real look. Svelte compiles components to plain JavaScript at build time, with no virtual DOM overhead. Final bundles are far smaller, the reactivity model is simpler than React’s hooks, and the developer experience is excellent.

The ecosystem is smaller, with fewer pre-built integrations and fewer hireable developers. For a personal project or a team that loves the language, SvelteKit is a pleasure. For something that has to run for ten years and survive staff turnover, React’s gravity still matters.

Vue-centric team: Nuxt

Many WordPress shops fell into Vue rather than React, because Vue feels closer to templates and reactivity than React’s everything-is-JavaScript. Nuxt is the Vue equivalent of Next.js, with the same shape: file-based routing, server-side rendering and static generation. If you’re already in the Vue world, stay unless you have a strong reason to move.

Just learning React: Vite and React, no meta-framework

Dropping into Next.js as a first React project is like learning to drive in a sports car. Server components, client components, routing conventions and build pipelines all arrive on day one. Start with npm create vite@latest and learn React on its own, as laid out in React in WordPress terms. Add React Router when you need routing, and a meta-framework once you understand what it would give you.

The WordPress Analogue

Next.js, Astro, SvelteKit, Nuxt and the rest relate to React and Vue the way WordPress, Drupal, Craft and Statamic relate to PHP. They share the underlying language and a lot of patterns. They differ in what they aim for, what conventions they enforce and how loud their communities are.

Picking between them is rarely about technical superiority. It’s about which set of opinions matches your project. PHP developers have known this for fifteen years, and React developers are slowly learning it.

The Alternatives Compared

Framework Best for Default JS shipped Routing Deploy
Next.js Full apps, hybrid sites Medium (server components + client islands) File-based, App Router Vercel-leaning, works elsewhere
Astro Content sites, blogs, docs, marketing Minimal (zero by default) File-based Anywhere (static or SSR adapter)
React Router 7 Form/CRUD apps, server-rendered React Medium Nested route configuration Node anywhere
SvelteKit Smaller bundles, simpler reactivity Tiny File-based Anywhere with adapter
Nuxt Vue equivalent of Next.js Medium File-based Anywhere with adapter
Vite + React + Router Pure SPA, internal tools, learning All client-side Router config Any static host
TanStack Start Newer, type-safe, full-stack TypeScript apps Medium TanStack Router Anywhere

My rough split: 70 percent of projects can be done in Next.js without anyone regretting it, and maybe 20 percent are clearly better served by Astro. The remaining 10 percent is where the other frameworks earn their keep, and picking the right one is worth the time.

What This Changes for WordPress People

Your default for client work shifts

For a brochure site, marketing site or content-heavy project where WordPress would have been the default ten years ago, Astro is now a serious contender. Pages are faster, deploys are simpler and there are no plugin updates to babysit. Clients with content editors still need a CMS, and you can pair Astro with a headless one, which the headless WordPress post walks through.

Next.js becomes “Next.js or what?”

Once you can name the alternatives and what each is for, conversations with clients and developers get sharper. “We chose Astro because the site is 95 percent static and we wanted minimum JavaScript” lands very differently from “We’re using Next.js because it’s popular.”

Your hiring filter improves

A frontend developer who only knows Next.js is easy to find. One who can pick the right framework for the job is rarer. If you hire for a client project, asking “when would you reach for Astro instead?” quickly separates confident developers from cargo-culters.

Traps When Picking an Alternative

Smaller ecosystems mean more writing it yourself

Next.js has a Stripe template, a Supabase template, an Auth.js template and dozens of starter kits. SvelteKit and Astro have fewer. On a side project that’s fine. On a production app with a deadline, it can add a week.

Vercel works with all of them but favors Next.js

Astro, SvelteKit and Nuxt deploy to Vercel fine. The deeper Vercel features, such as image resizing, ISR and edge middleware, are Next.js-specific. If you’re picking a non-Next framework partly to escape Vercel lock-in, check that your target platform supports the framework you chose.

The Remix to React Router 7 migration is bumpy

If you’re reading pre-2024 content about Remix, mentally rename it to React Router 7. Most patterns survived and some import paths changed. The framework is solid, but the rename left some confusing docs behind.

Lighter isn’t always faster

Astro pages are smaller and load faster, but an app that needs heavy client-side interactivity ends up shipping the JavaScript anyway. The framework that ships less JS is better for projects whose interactivity needs are modest.

Framework benchmarks

Every framework has a benchmark page showing it beats the others. They use different methodology, and none of them resembles your actual project. Pick a framework because it fits the project, not because it wins a synthetic test.

Form Your Own Opinions

A few resources if you want to develop your own view on when to reach for what.

On YouTube, “Picking a JavaScript Meta-Framework in 2025” by Theo (t3.gg, about 45 minutes) is opinionated but knowledgeable, and frames the alternatives the way many professional developers do internally. a 20-minute “Astro vs Next.js” comparison on YouTube covers real project differences instead of marketing claims.

In the official docs, the Astro docs have one of the better framework-pitch pages in the “Why Astro” section. The React Router docs now cover what used to be Remix, so start with the tutorial. The SvelteKit docs are worth reading even if you don’t plan to use it, since the philosophy section sharpens how you think about frameworks generally.

The next post leaves the frontend behind and looks at the modern database layer: Supabase, Neon, PlanetScale, Turso, and what changes when your MySQL stops living next to your code. It’s Beyond Shared MySQL.

Related

The Next.js homepage: The React Framework for the Web
Next.js: The WordPress of React
What WordPress, Astro, Next or React, and Laravel each handle on a site
When to Use WordPress, Astro, Next, or Laravel
The Next.js starter templates page on Vercel, a grid of clonable project templates
How the Pieces Wire Up: A Modern Stack Integration Tour
The Faust.js homepage, a headless toolkit for WordPress built on Next.js
Headless WordPress: The Bridge
The Vercel homepage showing its Agentic Infrastructure headline
Hosting Beyond Kinsta: Vercel, Fly, Railway, Cloudflare, and Friends
Why Modern Web Feels Alien to WordPress Devs

Filed under: Modern Web Stack for WordPress Developers

Part 5 of 16 · Modern Web Stack for WordPress Developers

← PreviousNext.js: The WordPress of ReactNext →Beyond Shared MySQL: Cloud Databases for WordPress Developers
All 16 modules
  1. Why Modern Web Feels Alien to WordPress Devs
  2. JavaScript and TypeScript for PHP People
  3. React, in WordPress Terms
  4. Next.js: The WordPress of React
  5. When NOT to Use Next.js
  6. Beyond Shared MySQL: Cloud Databases for WordPress Developers
  7. From WPDB to Drizzle, Prisma, and Kysely
  8. Auth in 2026: What Replaced wp_users
  9. Hosting Beyond Kinsta: Vercel, Fly, Railway, Cloudflare, and Friends
  10. Serverless and Edge Functions, Finally Explained
  11. Docker for WordPress Developers
  12. CI/CD: Goodbye FTP, Hello GitHub Actions
  13. Observability When You Can't Just SSH In
  14. Tailwind, shadcn/ui, and the New Design-System Meta
  15. Headless WordPress: The Bridge
  16. How the Pieces Wire Up: A Modern Stack Integration Tour

About Jean Galea

I build things on the internet and write about AI, investing, health, and how to live well. Founder of AgentVania and the Good Life Collective.

Leave a Reply Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords or links in the name field.

Jean Galea

Founder | AI builder | Dad of three | Athlete

Follow @jeangalea

  • My Padel Journey
  • Affiliate Disclaimer
  • Cookies
  • Contact

Copyright © 2006 - 2026