Setting Up This Blog
This blog exists because I wanted a quiet place to write about what I build. No CMS, no database, no JavaScript framework fighting me. Just Markdown files and a deploy pipeline.
Here’s how it came together.
The Stack
- Astro — static site generator, zero client-side JS by default
- UINUX Blog theme — typography-first, calm design. Newsreader for body text, Inter for headings, 640px content width
- GitHub Pages — free static hosting with custom domain support
- GitHub Actions — build and deploy on every push to main
The entire site is six components, a CSS file, and a content folder. Nothing else.
The Setup
Started with the Astro blog starter, then swapped in the UINUX Blog theme for its focus on readability and restraint. Stripped the nav header, rebranded to Monospace.Labs, and pointed it at labs.monospace.studio.
The deploy workflow is straightforward:
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npm run build
- uses: actions/upload-pages-artifact@v3
with:
path: ./dist
deploy:
needs: build
uses: actions/deploy-pages@v4
Push to main. Build runs. Site deploys. Done.
Custom Domain
GitHub Pages + a CNAME record pointing labs.monospace.studio to derrybirkett.github.io. GitHub provisions a Let’s Encrypt SSL cert automatically. HTTPS enforced.
A public/CNAME file in the repo ensures the custom domain survives every deploy.
What I Like About This Setup
No build complexity. Astro compiles Markdown to static HTML. No hydration, no client runtime, no bundle optimisation to worry about.
Content is just files. Posts are .md files with three frontmatter fields: title, description, date. No schemas to maintain, no CMS to log into.
Deploys are instant. Push, wait 30 seconds, live. The GitHub Actions workflow takes under a minute.
The theme stays out of the way. Serif body text, generous whitespace, no dark mode toggle, no hamburger menu. Just words on a page.
What’s Next
More posts. The blog exists to document real projects — infrastructure, automation, agentic systems. The HomeCloud launch post was the first. This is the second.
The best publishing system is the one you actually use.