6 min read
My SSG Journey: Why I Settled on Astro

I’ve always wanted to write more consistently. My notes are full of post ideas, but actually sitting down to write? That’s the hard part. Weekends roll around and all I want to do is stay away from my laptop. But hey, I’m trying again—this time while learning TypeScript on the side.

The FOMO Phase

2019 was peak Gatsby hype, and naturally, I jumped on the bandwagon. I wanted to see what all the fuss about SSG (Static Site Generators) was about. I even wrote about my first experience here:
First Time using SSG

Back then, my JavaScript skills were basically nonexistent, so I grabbed a pre-built theme and called it a day. Wrote a few posts, set up a basic about page, deployed to Netlify, and… that was it. A few weeks later, I abandoned it because I had no idea what to do next 😁

Back to My Roots

Fast forward to 2022. I had some downtime during college break and thought, “Is there an SSG built with PHP?”

Turns out, yes! Not super popular, but it exists. Check out Jamstack generators and search for “Jigsaw”.

I remember thinking it’d be fun to write with something PHP-based for a while. But there was this nagging feeling of… embarrassment? Everyone was hyping Hugo and migrating to Go, and here I was, sticking with PHP.

That said, Jigsaw was actually pretty straightforward. Familiar Laravel-like structure, Blade components, and Tailwind CSS support. If you’ve used Tailwind, you know why that matters.

The Go Experiment

Eventually, I caved and tried Hugo 🤩

It felt like leveling up—Go is fast, Hugo is blazing fast, and it seemed like the “serious developer” choice.

But here’s the thing: if your patience runs thin (like mine does), Hugo’s learning curve might frustrate you. The docs are thorough but technical, and without Go knowledge, it’s easy to get lost.

My advice? YouTube tutorials are your friend. The docs are great if you like reading technical references, but videos make it click faster. I got as far as picking a theme and customizing content before calling it quits.

Maybe I’ll dive deeper into Go someday. For now, Hugo and I are on a break 🙏

The Next.js Chapter

After bouncing around different SSGs, Next.js felt like the first one that just… worked.

Built on React, packed with modern features (SSG, SSR, API routes), and backed by Vercel’s incredible hosting platform. The DX (developer experience) was smooth, docs were clear, community was huge. Tailwind integration? Chef’s kiss.

Reality Check

But after a few months, something felt off. My blog is simple—just markdown content, no complex interactions. Yet here I was shipping a hefty JavaScript bundle for what’s essentially static content. Build times were getting longer as posts accumulated.

Don’t get me wrong, Next.js is incredible. But using it for a basic blog? That’s like driving a semi-truck to the grocery store.

Finding Home: Astro

Enter Astro.

Astro’s philosophy is beautifully simple: “Ship zero JavaScript by default”. Everything renders to static HTML. JavaScript only loads when you actually need interactivity.

I’ll be honest—I’m using a pre-built template. Not because I’m lazy, but because I want to focus on writing, not tinkering with layouts. The template covers what I need, and I tweak things here and there when necessary. Works perfectly.

Why Astro Clicked

Performance is insane

No JavaScript bloat means faster load times. The numbers back it up:

Core Web Vitals Comparison Source: Astro Performance Docs

Astro sites achieve good Core Web Vitals 63% of the time—crushing WordPress (44%), Gatsby (42%), Next.js (27%), and Nuxt (24%). These aren’t vanity metrics; they translate to real user experience improvements.

The syntax is refreshingly simple

If you know HTML, you know Astro:

---
const title = "Hello Astro";
---

<div>
  <h1>{title}</h1>
  <p>This is my blog</p>
</div>

Content Collections are a game changer

Built-in type-safe markdown management. Perfect for organizing blog posts without third-party tools.

Framework flexibility

Need React for something specific? Drop it in. Want a Vue component? Sure. Prefer Svelte? Go for it. Or just use vanilla Astro components—they’re often all you need.

Tailwind just works

One install command and you’re styling.

Migration Was Painless

Moving from Next.js to Astro:

  • Copied markdown files over
  • Converted React components to Astro syntax (actually simpler)
  • Kept using Tailwind
  • Deployed to Vercel without issues

The biggest win? Bundle size went from hundreds of KB to nearly zero for static pages.

Looking Back

Here’s my totally biased take after trying multiple SSGs:

  • Gatsby - Feature-rich but heavyweight for simple sites
  • Jigsaw - Solid if you’re a PHP dev, but niche community
  • Hugo - Lightning fast, but steeper learning curve
  • Next.js - Powerful for apps, overkill for basic blogs
  • Astro - The sweet spot for content-focused sites

Astro shines for blogs, portfolios, documentation sites, and marketing pages—basically anything where content matters more than heavy interactivity.

If your project needs complex dashboards or SaaS features, Next.js or SvelteKit might be better fits. But for blogging? Astro nails it.

Bottom Line

Will I stick with Astro forever? Who knows. The web moves fast, and something better might come along next year 😂

But right now, I’m happy. The site loads instantly, the writing experience is smooth, and I’m not shipping unnecessary JavaScript.

If you’re shopping for a blogging platform or SSG, give Astro a shot. It’s worth your time.

Have a good day ⚡️⚡️