Next.js vs Astro for a SaaS Marketing Site: Pick by Who Maintains It
Next.js and Astro can both build a SaaS marketing site. They are good at different things. What each one ships to the browser, what it costs to host, how it fits next to the product codebase, and the one question that settles the choice for most teams.
Two frameworks, one job, and a lot of confident advice on both sides. Here is the version without a side: what Next.js and Astro each do for a SaaS marketing site, and the question that settles it for most teams, which is not about performance.
What each one is for
Next.js is a React framework from Vercel. It is built for applications: routing, server components, data fetching, authentication patterns, API routes. A SaaS product is exactly what it is for. It can also build a marketing site, and it does that the way an application framework does, with React in the browser on every page.
Astro is a framework for content sites. It renders components to HTML on the server and ships no JavaScript by default. Interactive pieces are opt-in islands, in React, Vue, Svelte or plain script. A marketing site is exactly what it is for. It can also do server rendering and forms, and it does that the way a content framework does, with the static path as the default.
Neither is wrong for the other job. Each pays a tax when it does the other job.
What the browser receives
Load a Next.js marketing page and the browser gets the HTML, then the React runtime, then the code for that route, then it hydrates. On a good connection that is fine. On a phone on a train it is a second or two of a page that looks ready and is not.
Load an Astro marketing page and the browser gets HTML and CSS. If the page has a pricing toggle, it gets the small script for the toggle. That is the whole list. The difference shows in Lighthouse, in Core Web Vitals, and in the one number founders check: how the page feels on their own phone.
This is not a Next.js flaw. It is the cost of being an application framework. Marketing pages just do not use what they are paying for.
Where it lives next to the product
This is the question that decides it, and it has nothing to do with speed.
If the marketing site and the app share a repository, Next.js is the natural answer. Same components, same design tokens, same auth, one deploy. The pricing page can import the real plan definitions. The signup form is the real signup form. Teams that are React all the way down get real value from this, and an Astro site next door would mean two design systems and two deploys.
If the marketing site is its own thing, and for most companies it is, Astro is the natural answer. It has its own repo, its own cadence, its own editors. Marketing changes do not go through the app’s release process. Nobody needs the product’s build to pass to fix a typo on the homepage. And the site is light because nothing heavy lives there.
Ask who maintains the marketing site in a year. If the answer is “the app team, in the app repo”, Next.js. If the answer is “marketing, a contractor, an agent, or the founder”, Astro.
Editing and content
Next.js content lives in code or in a CMS the team wires up. Editing means a developer or a headless CMS subscription.
Astro content lives in Markdown and content collections, typed and version-controlled, or in a config file for the landing pages. A technical founder edits it directly. A non-technical one uses a visual layer: the AeroLaunch builder edits every section of a theme in the browser and exports the project, and the editors comparison covers CloudCannon, TinaCMS and the rest. The Astro side simply has more ways for a non-developer to run the site without a subscription.
Hosting and cost
Astro’s static output hosts free at marketing traffic on Cloudflare Pages, Netlify, Vercel, GitHub Pages, anywhere. Deploying to Cloudflare is a ten-minute job. There is no server to keep alive.
Next.js is easiest on Vercel, where the framework’s features all work. Elsewhere you run a Node process or an adapter, or use static export and lose the features that needed a server. Vercel’s free tier covers a small marketing site; the cost appears when traffic or team size crosses a line. It is rarely the deciding factor. It is a floor of zero versus a floor that can move.
Using React inside Astro
The objection we hear most: “our pricing calculator is a React component and we do not want to rewrite it”. You do not have to. Astro renders React components as islands. The calculator ships React to the browser on the pricing page only, and the other nine pages stay HTML. Same for a Vue widget or a Svelte one. Astro sites are often mistaken for “no React allowed” sites; they are “React where you ask for it” sites.
The short version
- Marketing pages inside the app repo, React team, shared components: Next.js. Take a Next.js template, keep one deploy.
- Standalone marketing site, blog as a growth channel, edited by non-app people, hosting at zero: Astro. Take an Astro theme.
- Undecided: Astro. Splitting a marketing site out of an app later is a bigger job than adding a React island to an Astro page.
If you land on Astro, the SaaS themes our buyers pick are Vertex, Tally and, for technical products, Contour. All on Astro 7 and Tailwind CSS v4, all with the pricing, changelog and blog pages already built, and all exportable from the builder if the person maintaining the site would rather click than commit.
Frequently asked questions
Is Astro faster than Next.js? +
For a content or marketing site, yes, in the sense that matters: Astro ships plain HTML with no JavaScript unless a component asks for it, so pages are lighter and load faster. Next.js ships the React runtime with every page. Next.js is not slow, and for an application its trade-offs are the right ones, but a marketing site does not need what it pays for.
Can I put a SaaS marketing site and the app in one Next.js repo? +
Yes, and it is the strongest reason to choose Next.js for marketing. Shared components, shared auth, one deploy, one team. The cost is that the marketing site inherits the app's weight and build, and every marketing change goes through the app's release process.
Can Astro use React components? +
Yes. Astro renders React, Vue, Svelte and Solid components as islands: static HTML by default, hydrated in the browser only where you say so. A SaaS marketing site can reuse the product's React pricing calculator inside an Astro page without shipping React to every other page.
Where do you host each one? +
Astro's static output hosts anywhere for free at marketing traffic: Cloudflare Pages, Netlify, Vercel, GitHub Pages, an S3 bucket. Next.js is easiest on Vercel; elsewhere it needs a Node runtime or an adapter, unless you use static export and give up some features. Hosting cost is rarely the deciding factor, but Astro's floor is zero and stays there.
Which one is better for SEO? +
Both render HTML on the server and both are indexable. Astro gives you lighter pages and full control of the document head with no extra work; Next.js gives you the same control through its metadata API with heavier pages. Content quality decides rankings. Page weight is a tiebreaker, and Astro wins the tiebreaker.
Start from a production-ready Astro theme
Skip building the design from scratch. These themes are full Astro 7 + Tailwind v4 projects you own outright - and you can edit them visually, no code, with the AeroLaunch builder.