Engineering 2 min read

Why we build Forge sites on Astro

Islands architecture, zero-JS by default, and a content layer that treats Markdown as a database. Here's why every Forge site ships on Astro.

Akshay Palimkar
Akshay Palimkar

Founder

Abstract gradient artwork reading "Why we build on Astro"

Every site Forge ships is an Astro site. That isn’t an aesthetic preference — it’s the constraint that makes the rest of the product possible. A marketing site has to be fast, crawlable, and cheap to maintain by a small team. Astro is the only framework that gives us all three without a fight.

Islands, not a single-page app

Most of a marketing page is static: a hero, some features, a pricing table, a footer. Shipping a megabyte of JavaScript to render text is a tax your visitors pay in battery and bandwidth. Astro renders everything to HTML at build time and hydrates only the interactive islands — a theme toggle, a pricing switch, a search box.

// This is the only JS that ships for the pricing section.
export default function PricingToggle({ onChange }) {
  const [annual, setAnnual] = useState(true);
  return <button onClick={() => setAnnual((v) => !v)}>...</button>;
}

You choose when each island loads with a client directive:

DirectiveLoads whenGood for
client:loadimmediatelytheme toggle, nav
client:idlethe browser is idlesearch, command menu
client:visibleit scrolls into viewFAQ, counters
client:mediaa media query matchesmobile-only menus
client:onlynever on the servercharts, anything DOM-bound

The content layer is a build-time database

Astro’s content collections validate your Markdown frontmatter against a Zod schema and give you a typed API to query it. A typo in a blog post’s author field fails the build, not production.

1. Triage
2. Plan
3. Build
4. Review
5. Merge

Combine that with the issue → PR → live loop and you get a marketing site where the content and the code are both reviewed before they ship.

What it costs

Near nothing. The page you’re reading ships only the JavaScript for the theme toggle and the navigation. Everything else is HTML and CSS — which is exactly what a marketing site should be.

Akshay Palimkar

Written by

Akshay Palimkar

Akshay builds Forge and writes about shipping marketing sites on a stack a small team can actually own.

Keep reading