Colophon
This is my personal blog, version controlled on GitHub, built and published with Cloudflare Pages running Hugo. Posts are written in Markdown with Monokai syntax highlighting via Chroma — if you like the look, check out Monokai Pro. The Congo theme (stable branch) is pulled in as a git submodule, which makes updates a breeze.
How It’s Built #
Hugo compiles the site from Markdown source files, with the exact version pinned in a .hugo-version file tracked in the repo. Cloudflare Pages runs a dual-mode build pipeline: production builds on the main branch publish a clean, minified site, while every other branch gets a full preview deployment that includes drafts and future-dated posts. Large binary assets are managed with Git LFS.
GitHub Actions #
GitHub Actions workflows automate the publishing lifecycle:
| Workflow | Description |
|---|---|
| Claude Code Action | @claude in an issue or PR triggers autonomous task execution with results posted back to the thread. |
| Automated Content Review | Every PR gets an automated review by Claude Sonnet, checking accuracy, style, and broken links. |
| Hugo Version Updates | Weekly check of gohugoio/hugo; opens a PR to bump .hugo-version when a new release lands. |
| Linting | pre-commit runs actionlint (with ShellCheck) on every PR and main push. |
Dependency Automation #
Dependabot keeps infrastructure dependencies current on a weekly cadence:
| Ecosystem | What’s tracked |
|---|---|
| GitHub Actions | Workflow action versions across all workflows |
| Congo theme | git submodule commits on the stable branch |
| pre-commit hooks | actionlint and other hook revisions |
Blog post content dependencies are tracked through a separate layer:
| Dependency | How it’s tracked |
|---|---|
| Categories, namespaces, products, events | Front matter taxonomy fields that build the internal link graph across posts |
| External links | Validated with curl in every PR’s content review |
| Images and media | Binary assets committed via Git LFS so the repo stays lightweight |
| Source materials | artifacts front matter field linking each post to its artifact/ directory files |
Claude Code #
Anthropic’s Claude Code is integrated throughout the composing and content verification workflow. The /hugo-update command automates Cloudflare Pages environment variable updates via the API whenever the Hugo version changes. cmux handles both terminal tab management and AI agent notifications — when a long-running task completes or needs input, the tab lights up and a notification fires without any additional tooling. The Remote Control feature lets me monitor and interact with a running Claude Code session from my iPhone, so I can kick off a task from the desk and check on it from anywhere.
Writing Workflow #
Pre-commit hooks run actionlint (with ShellCheck) automatically on every commit, catching workflow and script issues before they reach CI. Hugo’s dev server provides live reload for instant feedback while composing.
Comments #
Self-hosted and fully static — how comments work.