How I built this blog
This site is intentionally simple. The whole thing is a handful of files, it ships almost no JavaScript, and publishing a new post means adding one Markdown file.
The stack
- Astro — a static-site framework built for content. Pages render to plain HTML at build time.
- Markdown — every post lives in
src/content/blogas a.mdfile. - Vercel — connected to the GitHub repo, so every
push to
mainrebuilds and deploys automatically.
Writing a post
Create a file like src/content/blog/my-post.md:
---
title: 'My post'
description: 'A one-line summary.'
pubDate: 2026-06-22
tags: ['ideas']
---
Your writing goes here.
Commit, push, done. To keep a post unpublished, add draft: true to the
frontmatter — it’ll show up locally but won’t build in production.
That’s the whole workflow. The friction is low enough that the only thing left to do is write.