This post is a bit meta. I’m using the exact workflow I’m about to describe to write and publish this very article.
Here’s the setup: I speak my ideas out loud, an AI turns them into polished prose, another AI generates the hero image, and a set of scripts I built with AI assistance handles the publishing. The whole thing lives in a GitHub repository that you can clone and use yourself.
Let me walk you through how it works.
The Problem With Writing
I have ideas. Lots of them. The bottleneck has never been coming up with things to write about—it’s the friction between having a thought and getting it published.
Traditional blogging requires you to:
- Sit down and type out your thoughts
- Edit and format the content
- Find or create images
- Log into WordPress
- Copy-paste everything into the editor
- Set featured images, categories, meta descriptions
- Preview, fix issues, publish
Each step is a context switch. Each context switch is an opportunity to abandon the post entirely. My drafts folder is a graveyard of half-finished ideas.
Voice First
The breakthrough was realizing I don’t need to type. I use Wispr Flow for voice-to-text dictation. It runs locally on my Mac and transcribes speech with surprisingly good accuracy.
Now when I have an idea for a post, I just… talk. I ramble through my thoughts, explain the concept as if I’m telling a friend, and let the words flow without worrying about structure or polish.
The output is messy. It’s conversational, full of “um”s and tangents. But it captures the core ideas in a way that staring at a blank page never did.
AI as Editor
This is where Claude Code comes in. I take my raw dictation and ask Claude to transform it into a structured blog post. Not just grammar cleanup—actual restructuring, adding headers, tightening the prose, finding the narrative thread in my stream of consciousness.
The key is that I stay in control. Claude produces a markdown draft, and I review it. I keep what works, rewrite what doesn’t, add details Claude couldn’t know. The AI handles the tedious transformation from spoken word to written word. I handle the judgment calls about what’s actually worth saying.
The Publishing Pipeline
Here’s where it gets interesting. I built a set of CLI tools that Claude Code can use to handle the entire publishing workflow.
When I’m ready to publish, I have a conversation like this:
Me: "Generate a cyberpunk-style hero image for this post about AI blogging workflows,
crop it to 16:9, and publish to WordPress with the featured image attached."
Claude: [Generates image with Gemini] → [Crops and converts to JPG] →
[Uploads to WordPress] → [Converts markdown to Gutenberg blocks] →
[Creates post with featured image] → Done. Here's your URL.
One conversation. Full pipeline. No clicking through WordPress admin panels.
How the Tools Work
The publishing toolkit includes:
Voice capture – Wispr Flow transcribes my dictation to text
Content transformation – Claude Code converts raw transcription to structured markdown
Image generation – The Nano Banana Pro plugin generates hero images using Google’s Gemini model
Image processing – A Python script crops images to 16:9 and converts to web-optimized JPG
WordPress publishing – Another Python script handles media uploads, post creation, and metadata via the WordPress REST API
File organization – Each post lives in its own dated folder with the markdown source, images, and a metadata JSON file for future edits
The WordPress MCP server that ships with Claude Code can create posts, but it can’t upload media or set featured images. So I built CLI tools to fill those gaps. Claude Code runs them as needed during the publishing conversation.
Everything in Git
The entire setup lives in a GitHub repository. Each blog post is a folder:
posts/
├── 2026-01-13-ai-powered-blog-workflow/
│ ├── content.md # This post
│ ├── featured.jpg # Hero image
│ ├── hero.png # Original generated image
│ └── meta.json # WordPress post ID, dates, SEO fields
Version control for blog posts. If I need to update something, I know exactly where to find it. The meta.json file stores the WordPress post ID so I can push updates to the live site.
The Meta Part
Here’s what’s happening right now:
- I dictated the concept for this post using Wispr Flow
- I asked Claude Code to turn my rambling into a structured article
- I reviewed and edited the markdown
- I’ll ask Claude to generate a hero image
- Claude will crop it, upload it to WordPress, and publish
The workflow I’m describing is the workflow producing this description. It’s turtles all the way down.
Try It Yourself
The publishing toolkit is open source: github.com/mfwarren/personal-brand
You’ll need:
- A WordPress site with REST API access
- An application password for authentication
- Claude Code with the Nano Banana Pro plugin for image generation
- Wispr Flow (or any voice-to-text tool) for dictation
Clone the repo, configure your credentials, and start talking. The gap between having an idea and publishing it has never been smaller.
Written by dictation, edited by AI, published by CLI. The future of blogging is conversational.
