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
| Feature | Astro | Next.js | Hugo |
|---|---|---|---|
| Default JS shipped | 0 KB | ~80 KB | 0 KB |
| Component framework | Any | React | Go templates |
| Build speed | Fast | Medium | Very fast |
| Learning curve | Low | Medium | Medium |
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.