We ship in both Astro and Next.js, often in the same week. Clients ask which is "better" and the honest answer is: it depends on what you're building, who's going to maintain it, and what your performance budget looks like. Here's the framework we actually use.
The mental model
The simplest way to think about it: Astro defaults to static HTML and adds interactivity surgically; Next.js defaults to React and lets you opt out to static. That orientation matters more than any specific feature comparison.
If most of your pages are content (marketing sites, blogs, documentation, e-commerce catalogues, brochure sites for service businesses), Astro will produce a lighter, faster site with less ceremony. If most of your pages are application (logged-in dashboards, real-time UIs, complex client-side state), Next.js gives you a more cohesive developer experience.
When we pick Astro
- Content-first sites. Marketing, blogs, docs, landing pages. Astro's partial hydration means you ship close to zero JavaScript by default.
- Performance budgets matter. If Lighthouse 95+ is non-negotiable, Astro gets you there with less effort.
- Mixed component libraries. Astro lets you drop in React, Vue, Svelte, or Solid components side-by-side. Useful for migration projects.
- CMS-driven sites. Astro's content collections are excellent for managing structured content from any source.
When we pick Next.js
- SaaS apps and product dashboards. Server components, server actions, and the App Router shine when most of your UI is interactive.
- You need real-time UI. Streaming server components, suspense boundaries, and the React ecosystem make complex UIs more manageable.
- Auth-heavy applications. The Next.js + middleware combination handles complex auth flows well.
- Your team is React-native. If your developers think in React, fighting that with Astro's component model creates unnecessary friction.
The middle cases
Two categories give us pause:
E-commerce. For storefronts with mostly-static product pages and a small interactive cart, Astro is excellent. For complex commerce with personalisation, account management, and real-time inventory, Next.js wins.
Marketing site + product app. Many businesses have both. Our recommendation: ship the marketing site on Astro and the app on Next.js, with a shared design system. Two repos, two deployments, one consistent brand.
What doesn't matter as much as you think
People obsess over framework choice and ignore the things that actually drive outcomes:
- Hosting and edge strategy matter more than framework. A poorly-deployed Next.js site will lose to a well-deployed Astro site, and vice versa.
- Image and font strategy matter more than framework. Most performance problems are content, not code.
- Build pipeline and CI matter more than framework. The framework you ship to production is the one your team can deploy confidently.
Pick the framework that fits the workload. Don't pick the workload that fits your favourite framework.
Our default in 2026
If you handed us a greenfield marketing site with no other context, we'd start in Astro. If you handed us a greenfield SaaS app, we'd start in Next.js. For everything in between, we'd ask a few questions and then pick — and we wouldn't lose sleep over the choice. Both frameworks are excellent. The mistake isn't picking the "wrong" one. The mistake is picking either of them poorly.