Setting Up This Blog
How this site is built: Astro, Markdown content collections, GitHub, and Cloudflare Pages — and how to write your next post.
The stack
This blog is a static site with a Git-based workflow:
- Astro renders Markdown/MDX to fast, mostly-zero-JS HTML.
- Content collections validate every post’s frontmatter at build time.
- GitHub stores the source.
- Cloudflare Pages builds and deploys on every push.
Writing a post
Create a Markdown file in src/content/blog/. The filename becomes the URL
slug. Every post needs this frontmatter:
---
title: "Your Title"
description: "One or two sentences for SEO and previews."
date: 2026-07-11
category: "Systems" # one of the categories in src/consts.ts
tags:
- backend
- performance
draft: false # set true to hide from the site
---
## Your first heading
Write here.
If the category isn’t one of the allowed values in src/consts.ts, the build
fails — that’s intentional. It keeps your information architecture clean.
Publishing
git add .
git commit -m "post: your title"
git push
Cloudflare Pages picks up the push, runs npm run build, and your article is
live in about a minute.
← All articles