dwgx@blog:~$dwgx
> cd ../posts

Slapping Together My Own Blog From an Astro Template

// created

This is my personal blog, and what you’re looking at right now is it. Built with Astro, it’s where I collect the notes I’ve left behind over the years messing with low-level stuff, reverse engineering, game hacking, and self-hosting. All of this used to be scattered across drafts and chat logs; now there’s one place to keep it together.

Didn’t write it from scratch, just lifted the official blog template directly:

npm create astro@latest -- --template blog

This template follows the minimalist style of Bear Blog: clean, no gimmicks, only the bare minimum styling, and you change the rest yourself. It gives you a skeleton and doesn’t care how you build on it. I like that attitude.

I picked Astro to keep things simple. Static output, Lighthouse can hit a perfect score, fast loading. The SEO essentials are all there by default: canonical, Open Graph, the lot. Sitemap and RSS are supported out of the box, so subscriptions aren’t something I have to worry about.

Content runs on content collections. Drop Markdown into src/content/blog/, pull it out with getCollection(), and you can even put a schema on the frontmatter for type validation. An article is just a file: plain text, greppable, git-friendly, and if I ever want to stop using this, there’s no burden to move it elsewhere. The whole site is a pile of md files plus a shell around them.

Get it running first, don’t try to turn it into a big project from the start. The content will fill the empty shell on its own, and I’ll change the styling once I actually find it annoying.

Repo: https://github.com/dwgx/dwgx-blog