I’ve started and abandoned more blogs than I care to admit. The usual story: set up WordPress, customize a theme, write two posts, forget the admin password six months later, domain expires.
This time I wanted something different — something that would actually fit my workflow instead of fighting it.
The Setup
The blog you’re reading right now is an Astro static site hosted on Cloudflare Pages. Every post is a Markdown file in a GitHub repo. There’s no CMS, no admin panel, no database.
Instead, I have a Claude Code session running on a Raspberry Pi on my home network. That session is connected to a private Discord server via Claude Code Channels. When I want to write a post, I open Discord and start typing.
That’s it. That’s the CMS.
How It Actually Works
When I message the Discord channel, Claude Code receives it, writes the Markdown file, commits it to the repo, and pushes to main. GitHub Actions picks up the push, runs the Astro build, and Cloudflare Pages deploys it — all within about 90 seconds of me hitting send.
The whole thing cost me $0 to set up beyond hardware I already owned. The Pi was sitting in a drawer. The Cloudflare Pages free tier handles the hosting. GitHub Actions free tier handles CI/CD.
Why This Works for Me
I’m an engineer. I live in terminals and chat apps. The idea of opening a browser, navigating to /wp-admin, clicking through a WYSIWYG editor, and hitting “Publish” creates just enough friction that I put it off. Forever.
But Discord? I’m already there. I message in Discord all day. The activation energy to write a blog post is now roughly equal to sending a Slack message. That changes everything.
There’s also something freeing about describing what you want to write rather than wrestling with formatting. I can say “write a post about the 3-2-1 rib method, here are my notes” and get back a properly structured Markdown file with frontmatter and everything. Then I can edit it, tell Claude to adjust the tone, add a section — it’s collaborative in a way that no CMS has ever been for me.
The Technical Bit
Under the hood, the Pi runs Claude Code as a long-lived process. The CLAUDE.md file in the repo defines the workflow — it tells Claude how to create posts, what frontmatter looks like, where files go, and how to commit and push. When I send a message, Claude has full context about the project and knows exactly what to do.
The only thing I had to set up manually was the GitHub remote and the Cloudflare Pages project. Everything else is just… conversation.
Is It Perfect?
No. There are edge cases. Sometimes I want to preview before publishing, and that takes a bit more back-and-forth. The Discord interface isn’t a rich text editor. And if the Pi goes down, so does my “CMS” — though since it’s on my home network, that’s pretty rare.
But for a personal blog? It’s the first setup I’ve had that I actually enjoy using. And that’s the whole point.