Why We Chose Astro for Our Landing Sites
The technical decisions behind our frontend stack. Why Astro's islands architecture, performance, and developer experience won us over.
Why We Chose Astro for Our Landing Sites
We’ve tried them all: React, Next.js, Vue, Nuxt, SvelteKit, plain HTML. For our landing sites and marketing pages, we keep coming back to Astro. Here’s why.
The Problem with Modern Frontend
Modern web development feels increasingly complex:
- Massive JavaScript bundles
- Hydration overhead on every page
- Build times measured in minutes
- Framework lock-in that’s hard to escape
For content-heavy sites (landing pages, blogs, documentation), this complexity is overkill. Users want fast, readable content—not interactive JavaScript apps.
Enter Astro’s Islands Architecture
Astro’s genius is simple: ship less JavaScript by default.
Zero JavaScript by Default
Astro renders everything to static HTML. No hydration, no bundle, no runtime overhead. Just fast, lightweight pages.
Need interactivity? Add it selectively with “islands”:
<!-- Static, fast HTML -->
<h1>Welcome to OurMenu</h1>
<p>AI-powered meal planning for busy families.</p>
<!-- Interactive island when needed -->
<SignupForm client:load />
The SignupForm hydrates only when needed. Everything else stays static.
Performance Without Compromise
Our Astro sites consistently score:
- 100 on Lighthouse performance
- Sub-1s Time to Interactive
- Perfect Core Web Vitals
All without optimizing, code-splitting, or pulling our hair out.
Why Astro Fits Our Workflow
1. Content-First
Most of our sites are content: blog posts, product descriptions, documentation. Astro treats content as first-class:
---
import { getCollection } from 'astro:content';
const posts = await getCollection('blog');
---
{posts.map(post => (
<article>
<h2>{post.data.title}</h2>
<p>{post.data.description}</p>
</article>
))}
Type-safe, easy to query, simple to render.
2. Framework Agnostic
We use React for complex components. But we could use Vue, Svelte, or Solid. Astro doesn’t care—it renders them all.
This flexibility means:
- Use the right tool for each job
- Gradually migrate from legacy code
- Mix frameworks when needed (rare, but possible)
3. Developer Experience That Delights
- Fast dev server: Changes appear instantly
- Clear error messages: No cryptic stack traces
- Great documentation: Actually helpful, not reference-only
- Active community: Questions answered, bugs fixed
4. Built for the Edge
Astro works beautifully with:
- Vercel Edge Functions
- Cloudflare Pages
- Netlify
- Any static host
No vendor lock-in. Deploy anywhere.
Real-World Results
OurMenu Landing Site
- Build time: 12 seconds (vs 3+ minutes with Next.js)
- Bundle size: 12KB JS total (vs 200KB+)
- Lighthouse score: 100/100/100/100
- Hosting cost: $0 (static files on Cloudflare)
HomeBruh Documentation
- 200+ pages: Fast build, instant deploy
- Search: Client-side, no backend needed
- Versioning: Simple Git branches
- Contributions: Markdown files, anyone can edit
When We Don’t Use Astro
Astro isn’t perfect for everything:
Heavy Interactivity
Real-time dashboards, complex SPAs, web apps with lots of state—React or Vue are better fits.
Large Teams
If you have 50+ developers working on one codebase, Next.js’s conventions and ecosystem might serve you better.
Complex Backend Logic
Astro handles API routes, but for complex backends we use dedicated services (Node, Python, Go).
The Bottom Line
For landing sites, marketing pages, blogs, and documentation—Astro is our default choice.
It delivers:
- ⚡ Blazing fast performance
- 🎯 Content-first architecture
- 🔧 Framework flexibility
- 😊 Delightful developer experience
- 💰 Zero hosting costs for static sites
In a world of ever-increasing frontend complexity, Astro’s simplicity is refreshing. And effective.
Want a fast, modern landing site? Let’s build it with Astro.