# Why I Switched to Astro for My Personal Site

By Hassib Ashouri · 2025-04-26

After years of over-engineering personal sites with React frameworks, I rebuilt with Astro. Less JavaScript, faster pages, and a reminder that not everything needs to be an SPA.

I've rebuilt my personal site more times than I'd like to admit. Gatsby, Next.js, even a brief Hugo phase. Each time, I'd spend a weekend setting up the framework, another weekend tweaking the design, and then never write a single post.

This time is different — and not just because I'm saying that again.

## The Problem with Over-Engineering

My last personal site was a Next.js app with:

- Server-side rendering
- A headless CMS
- Tailwind + custom design system
- Automated OG image generation
- CI/CD pipeline with preview deployments

For a blog that had **three posts**.

```bash
# The most honest git log of my life
$ git log --oneline
a3f1c2d fix: og image generation (again)
8b2e1f0 feat: add dark mode toggle
4d1a3c8 chore: update 47 dependencies
1e0f2b3 initial commit
# Zero actual content commits
```

> **Note:** If your build pipeline is more complex than your content strategy, you've got the ratio wrong.

## Why Astro Clicked

Astro's pitch is simple: **ship less JavaScript**. For a content site, that's exactly right. My pages are static HTML with zero client-side JS unless I explicitly opt in.

### What I Like

**Content collections** are genuinely great. Define a schema, drop MDX files in a folder, and Astro handles the rest. Type-safe frontmatter without a CMS.

**Island architecture** means I can sprinkle interactivity where needed without hydrating the entire page. The copy button on code blocks? That's a tiny island. The rest of the page is pure HTML.

**Build speed** is noticeably fast. Full builds in under a second for a small site. No webpack config files to debug.

### The Tradeoffs

It's not perfect. The ecosystem is younger than React's, so you'll write more things from scratch. The docs are good but not exhaustive — I've read source code more than once.

And if you're building something genuinely interactive — a dashboard, a real-time app — Astro isn't the right tool. It knows what it is, and that's a feature.

## The Stack

Here's what I landed on:

| Layer | Choice |
|-------|--------|
| Framework | Astro |
| Styling | Tailwind CSS |
| Content | MDX |
| Hosting | Vercel |
| Domain | 7assib.com |

Total dependencies: minimal. Total JavaScript shipped to the browser: close to zero. Time from `npm create astro` to deployed site: one afternoon.

> **Takeaway:** The best stack for a personal site is the one that gets out of your way and lets you write. For me, that turned out to be Astro.

## Will I Actually Write This Time?

Ask me in six months. But the friction is lower than it's ever been: create an MDX file, write, commit, push. No CMS login, no build failures, no dependency updates blocking deploys.

That's the whole point.
