Skip to content
Moe Mobasheri

Astro or Next.js in 2026? What I'd pick for a small business site

Both are excellent and both run great on Vercel. Here's how I decide between them, and why this site ended up on Next.js.

· 2 min read

When I planned this site I had the same choice I make for clients every week: Astro or Next.js? Both are modern, fast, and SEO-friendly. Both deploy to Vercel in a couple of clicks. The difference is in what each one is built to do best.

Astro: content first

Astro (now on version 7) sends almost no JavaScript to the browser by default. Pages are plain HTML unless you specifically add an interactive "island". For a blog, a docs site or a brochure site, that's hard to beat: tiny pages, fast builds, and typed content collections that catch mistakes in your posts.

Pick Astro when the site is mostly words and pictures, the interactivity is small and contained, and you want the lightest possible pages.

Next.js: app-ready

Next.js (version 16) is React all the way down. It renders pages on the server or at build time, so search engines get full HTML, and it makes it easy to add the things that turn a site into a product: logins, dashboards, forms that talk to a database, API routes, live data.

Pick Next.js when the site needs to do things: booking, portals, calculators, a menu with a cart, or a lot of rich animation.

Quick comparison

Astro 7Next.js 16
JavaScript shipped by defaultAlmost noneReact runtime
Best forBlogs, docs, marketing pagesInteractive sites and web apps
SEOExcellentExcellent
Vercel hostingYes, via adapterYes, built by Vercel
Learning curveGentleSteeper

So why is this site on Next.js?

Because this site is part blog, part playground. The home page tells a story as you scroll, the Lab has interactive tools, and more are coming. That's the kind of work where React pays for itself. It's also the stack I use for most client builds, so this site doubles as a live example.

If this were only a blog, I'd have picked Astro without thinking twice.

Further reading: Cosmic's Astro vs Next.js comparison.