gaad

Landing pages that actually hit 100.

Astro 5 + Cloudflare Pages + Motion One. Every metric under budget by default. Ship in a day, not a quarter.

features

Small by design.

Three principles that make every landing built with the forge measurably fast.

Zero JS baseline

Astro islands ship no framework runtime by default. Pages weigh what you write, not what a framework needs.

Edge-first

Cloudflare Pages deploys to every continent. Median TTFB under 100 ms without any config from you.

Motion One, not R3F

4 KB of animation library. Rich micro-interactions without paying a 150 KB framework tax.

"We rebuilt three campaign pages in a weekend. Every one hits 100 on Lighthouse mobile. Before the forge, our best score was 62."
— fictional case study, but the perf numbers are real
FAQ

The questions actually get asked.

Why Astro and not Next.js?

Next.js ships 100+ KB of React runtime on every route. Astro ships 0 KB unless you opt in — with islands, you choose exactly where hydration happens.

What perf budget do landings hit?

Lighthouse mobile ≥ 98, LCP < 1s, INP < 100ms, CLS = 0. Enforced automatically via @gaad/landing-perf-gate on every PR.

How do I customize?

Every primitive accepts slots + class overrides. Or run `npm run eject` to copy primitives into your landing and shed the framework dependency entirely.

get started

Scaffold your landing in 60 seconds.

One command. Zero config. A production-ready Astro starter deployed to Cloudflare edge.

npm create @gaad/landing my-landing
View on GitHub