Indiego Lab Team |

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.

#Astro #web development #performance #architecture

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.