[Experience] I Built a Blog Auto-Generation System with Claude Code | Honest Report: From Setup to WordPress Auto-Draft
Why I Wanted to Automate My Blog Before Things Got Too Busy
Honestly, there was a sense of urgency. Even if I have time now, I can feel things getting busier ahead. The last thing I want is to end up with “I want to write, but I can’t move” paralysis.
I keep this blog because I want to put my experiences and thoughts out into the world. So the idea came naturally: “What if I could focus just on the experience itself, and let AI handle the rest?”
I Asked ChatGPT How to Design the System (One Time)
The first step was a single consultation with ChatGPT. Here’s roughly what I asked:
“I’ve installed Claude Code. I want to automatically produce high-quality, SEO-optimized articles. If I give it a rough idea and some photos, I want it to run on its own after that. How should I design the system?”
The key takeaway from the response:
“Rather than cramming everything into one agent, it’s more stable to assign roles by stage. For a blog, splitting into planning, SEO research, writing, image curation, quality checking, and publishing prep works well.”
That made sense. I’d had plenty of experiences where dumping everything into one ChatGPT conversation produced inconsistent results.
The Automation Blueprint ChatGPT Produced
The design that came out of that one consultation looked like this:
Role-Based “Subagents”
| Agent | Role |
|---|---|
| planner | Defines search intent, target reader, and monetization angle from the article topic |
| seo-researcher | Generates keyword candidates, related headings, FAQ ideas |
| writer | Writes the body content |
| photo-curator | Reviews photos, creates caption and alt text candidates |
| editor | Fixes verbose phrasing, logic gaps, and readability |
| publisher | Formats data for WordPress posting |
“Skills” to Standardize Repetitive Tasks
Commands like /blog-idea, /outline-seo, /draft-article, /prepublish-check—preset commands so I don’t have to type long instructions every time.
“Hooks” for Automatic Quality Checks
A system that automatically checks “word count, heading structure, meta description, CTA, internal links” every time an article is saved. The idea: stop hoping for quality, and enforce it.
The Overall Flow
You provide the topic, photos, and monetization angle
↓
AI generates structure, body, SEO elements, image plan, CTA
↓
Hooks run quality checks
↓
WordPress auto-saves as draft
↓
You review and publish
ChatGPT’s conclusion: if the final review stays with a human, 80–90% of the work can be automated. It also generated the full initial file set for zanzanweb.com, which I used as the base to implement everything in Claude Code.
What Is Claude Code? How Is It Different from ChatGPT?
Claude Code is a tool that brings Anthropic’s AI “Claude” into VS Code and the terminal.
The big difference from ChatGPT: it can directly manipulate local files and automatically execute multi-step tasks.
| Feature | ChatGPT | Claude Code |
|---|---|---|
| Interface | Browser / app | VS Code / terminal |
| File operations | Limited | Directly edits local files |
| Multi-step automation | Plugins / GPTs | Agents + scripts |
| WordPress integration | Mostly manual copy-paste | Script-based auto-draft posting |
ChatGPT is great at “organizing thoughts through conversation.” Claude Code is great at “automatically executing a defined workflow.” I consulted ChatGPT once for the initial design. After that, the daily workflow runs entirely through Claude Code.
How to Subscribe to Claude Code
Using Claude Code requires an Anthropic paid plan.
You can check plans and subscribe at the pricing page.
| Plan | Monthly | Best for |
|---|---|---|
| Pro | $20 | Getting started. Claude Code access included, but with daily usage limits |
| Max | $100+ | Heavy users. Good for long article generation and repeated agent tasks |
I started with the Pro plan. It was more than enough for testing 1–2 articles.
After subscribing, just install the VS Code extension and you’re ready to go.
WordPress Prep: Getting Tripped Up by HTTPS
To send drafts from Claude Code to WordPress, you need to generate an “Application Password” on the WordPress side. But there’s a catch: Application Passwords only work over HTTPS.
“I thought I’d set up HTTPS already.” Turned out I hadn’t.
First HTTPS Attempt (Failed)
On a Bitnami WordPress (AWS EC2) setup, I tried using bncert-tool to get a Let’s Encrypt certificate. First attempt failed.
[www.zanzanweb.com] acme: error: 400 :: DNS problem:
NXDOMAIN looking up A for www.zanzanweb.com
The cause: no DNS record for www.zanzanweb.com. I was trying to get a certificate for the www subdomain, which didn’t exist in DNS.
Second Attempt: Success
After checking the DNS situation and re-running the tool, it displayed “Success.” HTTPS redirect and www canonicalization were configured at the same time.
“I thought it was already done, but it wasn’t.” A little embarrassing—but catching it before starting with Claude Code was the right call.
Getting the Application Password
After HTTPS was set up, I generated an Application Password from the WordPress admin panel.
- WordPress Admin → Users → Profile
- Scroll to “Application Passwords” section at the bottom
- Enter a name (e.g.
claude-code) → “Add New Application Password” - Copy the displayed password (space-separated format) as-is
Claude Code Setup: Everything I Did
Using the zanzan_claude_starter file set from that initial ChatGPT consultation as the base, I configured the following:
Folder Structure
D:\ClaudeCode\
├ CLAUDE.md ← Blog operation rules (loads zanzan_claude_starter config)
├ .env ← WordPress connection info
├ .claude\
│ └ settings.json ← Hooks configuration
└ content\
└ drafts\ ← Generated article draft storage
CLAUDE.md contains the article template, writing style rules, SEO rules, monetization rules, and prohibited content. Claude Code reads this and operates accordingly. Think of it as a “constitution for writing.”
WordPress Credentials in .env
WP_BASE_URL=https://www.zanzanweb.com/
WP_USERNAME=(your username)
WP_APP_PASSWORD=(your application password)
Automated Quality Checks via Hooks
Every time an article file is saved, the following are automatically verified:
- Body text is at least 2,000 characters
- H2 headings exist
- Meta description is present
- CTA is included
- Internal links are configured
Problems trigger a warning in the terminal. Pass everything and it shows “OK.”
My Honest Impressions After Using It
It was genuinely useful.
I expected the setup to be a pain. But Claude Code itself guides you through configuration, so it was much smoother than I anticipated.
What stood out most was the feeling that Claude Code thinks for itself and gets things done. Tell it what you want, and it reads files, makes edits, checks its work—and pushes forward autonomously. A large chunk of the work can be handed off entirely.
On the flip side, the HTTPS discovery showed that you still need to verify your own environment. There’s a clear boundary between what AI can cover and what you need to check yourself—and staying aware of that matters.
Who It’s For / Who It’s Not For
It’s for you if:
– You have content ideas and experiences but struggle to find time to write
– Building SEO structure from scratch every time feels like a burden
– You’re comfortable with VS Code and the terminal
– You want to “build the system before life gets too busy”
It’s not for you if:
– You want to mass-produce articles with zero input (you still need to provide the first-hand experience)
– You’re not on WordPress (integration requires some effort)
– You’re not comfortable with basic PC operations (initial setup has some technical steps)
Conclusion
“Hand everything to AI” isn’t realistic—and probably shouldn’t be the goal anyway.
The first-hand experience, the feelings, the information that only exists in your life—none of that makes it into an article unless you put it there. AI’s role is to take that raw material and shape it into something well-structured and readable.
ChatGPT helped me design the system once. That’s it. The day-to-day workflow is now: you provide the topic and photos → Claude Code → WordPress. That pipeline is in place.
With life getting busier, having a system that lets me “actually get my experiences out into the world” is the biggest win from this whole project.