Why I Chose Astro for My Blog

A brief look at why Astro is the perfect framework for content-driven websites in 2026.

The Problem with Modern Web Dev

Building a personal blog shouldn’t require a PhD in JavaScript bundling. Yet, for years, the ecosystem pushed us toward heavy frameworks that ship megabytes of JavaScript just to render some text on a screen.

What Makes Astro Different

Astro takes a content-first approach. Here’s what that means in practice:

Zero JavaScript by default. Astro ships pure HTML and CSS unless you explicitly opt into client-side interactivity. For a blog, this is exactly what you want.

Island Architecture. When you do need interactivity — say, a theme toggle or a search component — Astro lets you hydrate just that component. The rest of the page stays static.

First-class Markdown support. Writing in Markdown feels natural, and Astro’s content collections give you type-safe frontmatter validation out of the box.

A Quick Comparison

FeatureAstroNext.jsHugo
Default JS shipped0 KB~80 KB0 KB
Component frameworkAnyReactGo templates
Build speedFastMediumVery fast
Learning curveLowMediumMedium

The Result

The blog you’re reading right now loads in under 200ms on a 3G connection. No loading spinners, no layout shifts, just content.

// This is all it takes to define a content collection
const blog = defineCollection({
  schema: z.object({
    title: z.string(),
    pubDate: z.date(),
    category: z.string(),
  }),
});

Sometimes the best technology is the one that gets out of your way.