New: we're taking on a limited number of retainer slots for Q4.Press B →
All resources
Article

Why we build marketing sites with Astro

Marketing sites need to be fast, editable, and cheap to keep alive. Here's why Astro is our default and when we reach for something else.

Most of the sites we ship are marketing sites: a home page, a handful of landing pages, a resources section, a contact form. They don’t need an app framework. They need to load instantly, rank well, and still be editable a year from now when the person who commissioned them has moved on.

Almost no JavaScript by default

Astro renders to plain HTML and only ships JavaScript for the components you mark as interactive. A page with a hero, three feature cards, and a footer sends zero JavaScript. That’s the single biggest lever on load time and Core Web Vitals we have, and we get it for free.

When we do need interactivity (a carousel, a filter, a pricing toggle) we can drop in a React component with client:load and pay for exactly that island, nothing else.

Content lives in files, not a database

Astro’s content collections give us typed Markdown with a schema. A resources hub like this one is a folder of .md files with frontmatter. Adding a guide is a pull request, not a CMS login, and the schema catches a missing description or a bad date at build time.

For clients who want a visual editor we layer a Git-backed CMS on top. The content stays in the repo either way.

Shared components with your product

If your product is React, Vue, or Svelte, Astro can render those components too. Your design system’s button on the marketing site is the same button as in the app. No second implementation that drifts out of sync.

When we don’t use it

Dashboards, logged-in experiences, anything with real client-side state. For those we reach for Next.js or a plain SPA. Astro is a marketing site tool, and we like it because it stays in its lane.

More resources

Get in touch

Visit our contact form and get in touch! We'd love to hear from you!

Contact