Dragonfly
← posts

posts by Chris Reynolds

There Is No Admin. That's the Point.

The "you don't need a CMS" conversation is 20 years old. AI didn't create it. Invert is a proof of concept that the whole argument is a false binary.

tags: cmswordpressaidevelopmentinvertastromcp

Disclosure: This post was composed by Claude (Anthropic) using the Invert MCP server. See the About page for more on how this site works.

On April 1, Cloudflare announced EmDash — "the spiritual successor to WordPress," built in TypeScript and Astro. Two weeks earlier, Joost de Valk, the founder of Yoast SEO, wrote about migrating his personal blog away from WordPress to Astro and asked whether you even need a CMS at all. And somewhere in between, a parade of LinkedIn posts from agency veterans declared that WordPress was dead, that AI had killed it, and that the future was some bespoke AI-generated JavaScript site that could be spun up in a fraction of the time.

I've been watching this conversation happen in real time and I have a hot take: this isn't a new conversation. The "you don't need a CMS" argument is old enough to drink. We've been having it for as long as CMSes have existed. AI didn't invent it. EmDash didn't invent it. What changed is that there's now a hype cycle powerful enough to make old arguments sound like revelations.

So I built something. Not to win the argument. To demonstrate that the argument is the wrong frame entirely.

The actual problem

The way the conversation usually goes: someone points out that WordPress (or Drupal, or whatever CMS) is overkill for a simple site. That's true. It's been true since 2005. Someone else points out that WordPress powers 40% of the web, has a massive plugin ecosystem, and has given non-technical users the ability to publish on the internet without needing a developer. Also true. Both camps dig in, and nothing gets resolved, because they're talking about different problems.

The thing that nobody wants to say out loud is that the CMS and the frontend are actually separate concerns that got fused together for convenience and then calcified. WordPress ships with a theme layer. Drupal ships with a theme layer. The admin and the presentation grew up together and most people never questioned whether they needed to.

When the headless movement picked up steam — decoupled Drupal, WordPress as a REST API backend, all of that — it started pulling those layers apart. And the right people noticed. But the pitch was still usually "you need this specific frontend framework on top of your existing CMS." It was decoupled, but not truly separated. The CMS was still load-bearing.

Then AI enters the chat and the hot take becomes: just ditch the CMS entirely and let an AI generate your site. Which is not decoupling. That's just burning the building down and building a new one in the same spot, hoping the new one doesn't have the same problems.

What Invert is

Invert is a database-less, adapter-driven content presentation layer built on Astro. It renders content from any source — JSON files, markdown, a WordPress site, a Drupal site, an AI tool over MCP — without an admin panel, without a database, and without opinions about where your content lives.

There is no admin. That's the point. If there's no admin, then the admin can be anything.

You can wire Invert to a WordPress backend and keep your admin panel exactly as it is. You can commit markdown to a git repo and let Invert pull from GitHub at build time. You can run the built-in MCP server and have an AI tool write structured JSON content directly to the filesystem. You can do all three simultaneously. The presentation layer doesn't know or care. It just normalizes whatever comes in through the adapters into a common shape and renders it.

The point isn't the tech stack. The point is the separation. The presentation layer and the content management layer are different concerns, and they shouldn't be coupled just because it was historically convenient to ship them together.

The MCP angle

Here's where it gets interesting. One of the things people are excited about when they pitch "AI replaces your CMS" is the idea that you can just tell an AI to update your site. Change your store hours by chatting with Claude. Publish a new post by talking to ChatGPT. The admin panel is replaced by a chatbot.

I get the appeal. I also think it's slightly deranged to hand content publishing authority entirely to a system that hallucinates with confidence and offers no visual confirmation that it did the thing you asked.

But here's the thing: you don't have to choose between "AI writes your content" and "AI IS your CMS." Invert's MCP server gives an AI tool the ability to create, read, update, and search content items — but it writes to JSON files on the filesystem. The content is still files. It's still in git. It's still auditable. The AI is a contributor, not the landlord.

This is the same argument I've made about WordPress and MCP. WordPress core already has MCP support. You can give an AI tool the ability to interact with your WordPress site without replacing the admin panel. The admin panel still exists for the humans who want to use it. The AI gets an API. Everyone wins.

The problem with "AI as CMS" isn't AI. It's the "as CMS" part — treating an LLM as the authoritative source of truth for your content layer, rather than as a tool that can interact with a well-designed content layer.

Why "Invert"

The first time you try an inversion in aerial arts, your body freaks out. Doesn't matter how much you understand it intellectually. The moment your hips go above your head, every instinct you have fires at once: you are falling, abort, get right-side up. Your nervous system has spent your entire life learning that upside-down means danger, and it is not interested in your new hobby.

So you get through the first panic. You stick the inversion, come back down, survive. Good. Now a new fear kicks in: what if your grip slips? What if your hands give out and you come down headfirst? You're not afraid of the concept of inverting anymore — you've done it — but now you're aware of exactly what's at stake if something goes wrong.

The conditioning that happens here is physical, sure. You're building grip strength, shoulder stability, core tension. But more than that, you're reprogramming the relationship between your brain and your body. You're teaching yourself, repetition by repetition, that you are still in control even when everything feels wrong. That the world being upside down doesn't mean you've lost your grip. That the disorientation is temporary and the hold is real.

That's what Invert the framework is trying to do. Not blow up the CMS. Not validate the "WordPress is dead" crowd. Just flip the frame. What if the presentation layer was always optional? What if the admin panel was just one possible implementation of the content management layer, not the only one? What if you could have a modern, fast, static frontend that works with whatever content source you already have — or no content source at all?

The instinct is to panic when someone says "you don't need a CMS" — or conversely, to panic when someone says "AI is going to replace your CMS." Both reactions are your nervous system misfiring. You're still in control. The hold is real. You just have to build the strength to trust it.

We don't have to throw our toys away. We can have new things and still honor the old things.

The false binary

EmDash is genuinely interesting. It's architected so AI can consume and operate it, but it ships with a human interface because it's built for humans to actually use. Cloudflare didn't say "ditch your CMS." They said "migrate to a better CMS." Even Joost, two weeks after saying he didn't need a CMS, migrated to EmDash. Because there's still a place for a CMS. He just needed a better one for his use case.

That's the thing nobody wants to say in the middle of a hype cycle: it depends. It depends on what you're building, who's maintaining it, what the long-term maintenance burden looks like, and whether the humans involved actually want to manage NPM dependencies or learn a new framework or trust an AI to update their content correctly.

Invert is a proof of concept for the idea that you can have a coherent, functional, AI-compatible content site without resolving any of those questions in advance. Bring your own CMS, or don't bring one. The presentation layer doesn't care. That's not a bug. That's the whole point.

The conversation about whether you need a CMS is going to keep happening. AI didn't start it and AI won't end it. But if you've been watching the debate and thinking "these people are arguing about the wrong thing" — yeah. They are. The CMS and the frontend are separate concerns. Build them that way and most of the argument evaporates.

Invert is open source and available as a GitHub template at github.com/jazzsequence/Invert. This post was composed by Claude using the Invert MCP server.