A note on the stack, mostly so future-me remembers the choices.
The stack
- Astro for the static site generator. It outputs plain HTML by default, ships zero JavaScript unless I opt in, and the content collections API makes blog posts feel like the file system, not a CMS.
- Cloudflare Pages for hosting. Free, global, integrated with Cloudflare’s edge security and DDoS protection.
- Cloudflare Registrar for the domain. At-cost registration ($10.44
for a
.com) means I locked in 10 years without overpaying. - GitHub for source. Push to
main, Cloudflare deploys. No build servers to babysit.
What I optimized for
Two things: boring and safe.
Boring, because I don’t want to maintain this site every time some JS framework changes its mind. Static HTML behind a CDN will still work in five years with zero edits from me.
Safe, because static sites have a tiny attack surface. No database, no auth, no server-side anything, no CMS for someone to brute-force. Add DNSSEC, force HTTPS, set a strict Content-Security-Policy, and there’s genuinely not much left to attack.
What I skipped
- Analytics. I’d rather write for the small number of people who subscribe than chase a number that goes up.
- Comments. They’re a moderation tax I don’t want. Replies go to my email.
- A CMS. Markdown files in a git repo are a CMS that I already know how to use.
If you’re thinking about building your own, the SETUP.md in the repo walks through the exact steps end-to-end.