Every CMS I've ever used made me feel like I was fighting the tool instead of writing. WordPress wanted me to care about plugins. Webflow wanted me to drag things. Notion-to-site tools wanted me to accept their constraints. None of them let me just say what I wanted and have it exist.

So I stopped using all of them. My site runs on markdown files, a 600-line build script, and Claude.

The stack

The entire system is four components:

Claude handles content creation. I describe what I want to write about — sometimes in detail, sometimes just a topic — and Claude drafts the post, creates the markdown file with full frontmatter, runs the build, and tells me to push. The conversation is the CMS.

GitHub is the database. Every piece of content is a markdown file in a repo. Version history is built in. Rollbacks are a git revert away. There's no MySQL instance to babysit, no migration scripts to pray over.

Cloudflare Pages handles deployment. Push to GitHub, site rebuilds automatically on the edge. Global CDN, SSL, custom domains — all handled. The free tier covers everything I need.

Cloudflare Workers powers the server-side logic. My contact form runs as a Worker function — a few lines of code that processes form submissions without a traditional backend server.

That's it. No admin panel. No database. No dependency updates at 2 AM.

How content actually gets created

Here's what a typical session looks like. I open Claude and say something like "write a post about operational leverage for founders." Or sometimes I just start riffing on a topic and Claude picks it up.

Claude creates a markdown file in the content directory with structured frontmatter — title, slug, meta description, tags, publication date, and FAQ entries for search engines and AI answer engines. Then it writes the post in my voice, using the style guide I've built into the system.

When the draft is ready, Claude runs the build script. That script reads every markdown file, converts it to full HTML pages with the site's design system applied, and generates all the SEO infrastructure: structured data, Open Graph tags, sitemaps, RSS feeds, the works.

I review the output, run git push, and Cloudflare deploys it globally in under thirty seconds.

The entire process from idea to published post takes about fifteen minutes. Most of that time is me reading the draft and making edits.

Why this works for an operator

I think about systems in terms of operational leverage — how much output you get per unit of input. Traditional CMS platforms are high-input systems. You spend time on the tool instead of on the content.

This stack inverts that ratio.

The best system is the one where the bottleneck is your thinking, not your tooling.

I spend zero time on formatting, zero time on SEO configuration, zero time on deployment. The build script handles structured data, meta tags, breadcrumbs, FAQ schema, and sitemap generation automatically. Every post gets the same thorough SEO treatment whether I think about it or not.

And because the content is just files in a repo, I own everything. No vendor lock-in. No export process. No pricing tier that holds my content hostage. If I want to switch hosting tomorrow, I copy a folder.

The build script is the secret

The real leverage is in the build script. It's about 600 lines of Node.js that does everything a CMS admin panel would do, but automatically and consistently:

It reads markdown files and converts them to HTML. It wraps each page in the site's design system — consistent header, nav, footer. It generates JSON-LD structured data for every page: Article schema, FAQPage schema for the FAQ entries, breadcrumb schema, organization schema. It creates speakable markup so voice assistants know which parts of the page to read aloud. It builds the blog index, generates the sitemap, creates the RSS feed, and writes robots.txt.

Every time I create or edit content, the build runs and everything stays in sync. There's no "did I remember to update the sitemap?" moment.

What I gave up

I won't pretend this approach works for everyone. There are real tradeoffs.

No visual editor. You need to be comfortable with the fact that content lives in markdown files, not a WYSIWYG interface. For me that's a feature. For a marketing team, it might not be.

Technical setup. Someone has to write the build script and configure the deployment pipeline. That's a one-time cost, but it's not zero. I'd estimate the initial setup at a few hours if you know what you're doing.

Single-operator optimized. This system is built for one person (or a very small team that's comfortable with git). If you need role-based permissions, content approval workflows, or a dozen people publishing simultaneously, you need something else.

What I gained

Speed. Idea to published post in fifteen minutes.

Control. I own every file. No platform risk. No API changes breaking my site overnight.

Zero maintenance. No security patches. No plugin updates. No database backups. The site is static HTML on a global CDN — there's nothing to maintain.

SEO on autopilot. Every post automatically gets structured data, FAQ schema, Open Graph tags, and sitemap inclusion. I don't think about SEO mechanics; the system handles it.

Answer engine optimization. The FAQ entries in every post generate FAQPage structured data that AI assistants and search engines can pull from directly. This isn't an afterthought — it's built into the content creation workflow from the start.

The meta point

The thing that strikes me most about this setup is that it's an example of the exact kind of operational leverage I advise my clients to build.

I took a recurring, time-consuming process (managing a website and publishing content), identified the parts that actually required my judgment (deciding what to write and reviewing the output), and automated everything else.

The system doesn't eliminate the human. It eliminates the friction around the human. I still decide what to publish. I still review every word. But the mechanics — the formatting, the SEO, the deployment, the structured data — happen automatically.

That's what AI leverage looks like in practice. Not replacing the operator. Reducing the distance between their intention and the outcome.

Frequently Asked Questions

Can you use AI as a content management system?
Yes. By combining an AI assistant like Claude with a static site generator, GitHub for version control, and a hosting platform like Cloudflare Pages, you can manage website content entirely through conversation — no traditional CMS admin panel required.
How does a markdown-based CMS work with AI?
Content is stored as markdown files with YAML frontmatter for metadata like titles, descriptions, and SEO data. The AI creates and edits these files, a build script converts them to HTML with full structured data, and a git push triggers automatic deployment.
Is a custom AI-powered CMS better than WordPress?
For a solo operator or small team that values speed, control, and zero maintenance overhead, yes. There's no database to manage, no plugins to update, no security patches to apply. The tradeoff is that it requires comfort with a technical workflow — but AI handles most of the complexity.
What is Cloudflare Pages and why use it for a CMS?
Cloudflare Pages is a static site hosting platform that deploys automatically from GitHub. It serves pages from a global edge network, handles SSL, and costs nothing for most small sites. Combined with Cloudflare Workers for server-side logic, it replaces traditional web hosting entirely.
How do you handle SEO with a custom-built CMS?
The build script generates all SEO artifacts automatically: meta tags, Open Graph data, Twitter Cards, JSON-LD structured data, FAQ schema for AI answer engines, a sitemap, an RSS feed, and robots.txt. Every post gets full SEO treatment without manual configuration.