← Blog

Adding a CMS to My Personal Site

Why

Every time I wanted to update my homepage — change the bio, add a project, tweak the wording — I had to edit the Astro source, commit, and redeploy. That's fine for a developer, but it meant I was only updating the site when I was already in code mode.

What I picked

I went with Keystatic. It's a Git-based CMS that lives right in the repo — no separate database, no external service. Everything is YAML and Markdown files in src/content/. The admin UI is built into the site at /keystatic.

How it works

  • Singletons for one-off content (hero section, about page)
  • Collections for repeatable items (skills, projects, links, art, blog posts)
  • The Astro site reads everything through Keystatic's reader at build/render time
  • Blog posts use Markdoc for rich text — headings, code blocks, lists, all the good stuff

What's next

Now that the CMS is in place, this blog exists. I'll write here about things I'm building, things I'm learning, and things I'm figuring out.