Moving from WordPress to Astro/Payload

Insights

This post is showing up on my WordPress website. A technology I've used since 2005. For more than twenty years, chrislema.com has run on WordPress. And soon it will run on Payload CMS as an Astro site.

You might think this is a post about trashing WordPress. It's not. I still think WordPress is the right solution for 75%, maybe 85%, of the people out there who need websites.

This is a post about what happens when you choose the bleeding edge. What it actually costs. And why the process of leaving WordPress made me appreciate it more than I ever did while using it.

Why I'm Doing This

I work with AI agents every day. That's not an exaggeration. Building workflows, testing what's possible, pushing into territory that isn't ready for most people.

My personal site is my playground. It's where I experiment. And I wanted to build something specific: a workflow where I create content in Claude, shape it for different platforms using YourVoiceProfile and YourAudienceSegments, and distribute it directly to my website, social platforms, and newsletter—without leaving where I'm working.

The other day I wrote about YourContentAgent and how I'm using a skill graph to help with articles. It uses my voice profile and audience segments internally. But when the article is done, I want to shape it for different platforms—and I want to distribute that article right from where I'm working to my website, every social platform, and more using YourPlatformProfile.

I wanted agents to be first-class participants in my content workflow. Not helpers. Participants.

That's a weird thing to want. It's definitely not what most content creators need. But it's what I wanted to build, and my WordPress setup wasn't designed for it.

Not because WordPress is bad. Because WordPress was designed for a different job.

What WordPress Does That You Don't See

Here's what I learned by leaving: WordPress does a ton of invisible work.

I moved all my content out—more than 1,500 posts—and converted it to markdown files. Then I decided I wanted a little CMS in my life, so I shifted everything from markdown to Lexical JSON and loaded it into Payload.

Boom, easy.

Then I wanted to mark a post as draft.

You want drafts? That means you need to load up the draft feature. Initialize it. Run through the entire database and seed it with all the articles in publish mode.

Ninety minutes later, all my posts had disappeared from the CMS.

They were still there. Database issue. But here's the thing: you don't have to deal with this in WordPress. Draft and publish status come for free. You click a button. You never think about it.

Then images. Featured images. Where are we storing them? Payload automatically configured things for Cloudflare, where I'm hosting the new version. But I wanted the Cloudflare polish features—automatic image optimization, right sizing, quality adjustments. Those only work if the URL comes from a custom domain.

Thirty minutes later, I finally got files showing up from media.chrislema.com.

You don't deal with this in WordPress either. Your images just show up. If you load in Jetpack, they handle the optimization automatically. Magically. You never see the wiring.

I could tell you three or four other stories like this. Each one something WordPress handles invisibly that I had to rebuild manually.

This Is the Bleeding Edge

I want to be clear about what I'm describing: this is the tax you pay for operating at the bleeding edge.

WordPress abstracts away infrastructure so you can focus on content. That's the product. That's why it powers a huge percentage of the web. It's really good at that job.

When you leave WordPress for something like Payload and Astro, you're trading that abstraction for control. You get content as structured data. You get programmatic access to everything. You get the ability to wire agents directly into your content infrastructure.

You also get to rebuild draft status from scratch. And debug image URLs. And handle a hundred other things that WordPress engineers solved years ago.

That's not a criticism of the bleeding edge. That's just what it costs.

Why Most People Shouldn't Do This

Let me be direct: my use case is the .001%. It's not mainstream.

Our corporate site, Motivation Code, is still running on WordPress. At work, I don't play. WordPress is the right tool for that job.

If you're a content creator who wants to create content and have it show up on your website without thinking about infrastructure, WordPress is probably still your answer. Or Substack. Or Ghost. Or any of the platforms designed to make content creation easy.

The question isn't whether those platforms are good. They're great.

The question is whether you want to spend your time creating content or rebuilding content infrastructure. For most people, the answer is obvious.

Why I'm Doing It Anyway

I'm rebuilding because I want to play.

When I want to build an agent that scans my files and tweaks them based on SEO, I can do that. When I want to create a new page for my book—like I did recently for Story First—I'm doing that work with agents. When I want content to flow from Claude to my website to LinkedIn to my newsletter with agents handling the formatting and distribution, the infrastructure gets out of the way because it was designed to get out of the way.

That's the payoff for all the friction. The infrastructure becomes a surface that agents can work with directly.

But I'm also doing it because I'm watching what WordPress is doing with AI. In twenty years, I've never seen WordPress move as fast as it's moving right now. There's a version of the future where WordPress builds the agent-native capabilities I want, and I migrate back.

I'm keeping an eye out for what's ready and what isn't.

What I Actually Learned

The thing I didn't expect: leaving WordPress made me appreciate it more.

Every friction point in the migration was a reminder of something WordPress had been doing for me, silently, for twenty years. The people who built WordPress thought about draft states and image optimization and URL structures so I never had to.

That's not a small thing. That's thousands of decisions made well, accumulated over two decades, invisible because they just work.

I'm choosing to leave that behind—on my personal site, for my specific weird use case—because I want to build something WordPress wasn't designed for. But I'm not confused about what I'm giving up.

If you're thinking about making a similar move, here's my advice: be honest about why.

If you're moving because you want to play at the bleeding edge and you're willing to pay the tax, go for it. It's genuinely fun if that's what you're into.

If you're moving because you think WordPress is holding you back, slow down. For most content workflows, WordPress isn't the bottleneck. And the grass on the other side comes with a lot of infrastructure you'll have to mow yourself.