Decision guide
Astro vs Next.js
Both are excellent; they are built for different jobs. Here is the short version of how we choose. For the long version with code, read the full essay.
The decision matrix
| Criterion | Astro | Next.js |
|---|---|---|
| Rendering model | Static-first, server islands, opt-in server rendering | Server, incremental and static rendering, React Server Components |
| JavaScript by default | None. Ships HTML; hydrates islands only where needed | A React runtime on every page |
| Best fit | Marketing and content sites, docs, blogs, landing pages | App-heavy products, dashboards, lots of server logic |
| Core Web Vitals | Strong by default, with little JavaScript to block the page | Good, but you manage the JavaScript budget yourself |
| Interactivity ceiling | High. Drop in React, Svelte or Vue islands | Highest. It is a full application framework |
| Server routes and APIs | Yes, through endpoints and adapters, when needed | First-class: route handlers and server actions |
| React ecosystem | Use React where it earns its place | Native, all of it, all the time |
| Our default for a marketing site | Yes | Only when it's really an application |
Choose Astro when
- It's a marketing site, content platform, blog or documentation.
- Core Web Vitals and search decide the outcome.
- The page is mostly content, with islands of interactivity.
- You want the smallest possible JavaScript footprint.
Choose Next.js when
- It's genuinely an application: dashboards, portals, tools.
- There is significant server logic, authentication and dynamic state.
- You are committed to React across the whole product.
- Server actions and route handlers are central to the design.
Our verdict
We default to Astro for marketing sites and content platforms: the performance comes free and the maintenance surface is smaller. We reach for Next.js when the project is really a web application with heavy server logic and authenticated, dynamic state. The mistake we see most is a full application framework shipping a brochure site, and the business paying for that JavaScript forever.
Common questions
Is Astro slower to build with than Next.js?
For a content or marketing site it is usually faster: less boilerplate, no client-state plumbing, and performance you get by default instead of fighting for. For a data-heavy application, Next.js conventions pay off.
Can Astro do interactivity?
Yes. Astro ships no JavaScript by default and lets you hydrate interactive islands (React, Svelte, Vue or plain JavaScript) exactly where you need them, so the rest of the page stays fast.
What do you default to?
Astro, for marketing sites, content platforms and anything where Core Web Vitals decide the outcome. We reach for Next.js or another application framework when the project is genuinely an application with significant server logic and dynamic, authenticated state.
More decisions we help teams make
- Headless CMS vs WordPress: when composable architecture earns its complexity.
- Flutter vs native: the cross-platform trade-off, decided honestly.
- Shopify vs WooCommerce: the real cost-of-ownership comparison.
- Redesign vs rebuild: refactor, or start over.
YOUR NEXT CHAPTER
Tell us what you're building.
A few lines about the idea, the business and what is getting in the way.