Pinned Tweet
Hello #WordPress peoples, I'm Alex and here on X I'll be documenting how I'm bringing my shops back to life.
It's hard because I've been building quietly for so long, and now that my first user's are getting results I feel compelled to share the perspective.
In short: I am crazy about building on WordPress and think its strengths are outside the "page builder and plugin stack" lense that has shaped it for over a decade.
My products focus on content creation which was the whole point from the beginning, and helping my customers and clients rediscover the joy of writing on the web is a growing obsession of mine.
I hope this puts more WordPress people in my feed, please say hi if you see this and throw me links to a site or two you are most proud of!
New blog post published. Support tickets answered. Newsletter #2 about to go out.
Breaking the code-all-day routine hasn’t been easy, but this kind of work gives me energy that technical problems don’t.
Been noticing this as well as I build more MCPs into my #WordPress products.
An agent will skip when too constrained, or just go to REST API or elsewhere, making the whole thing feel pointless.
I build MCP into my apps. My own agents almost never use it.
My setup is simple. Each agent is a Claude Code session with its own project folder and a .env containing whatever keys it needs. I tell it to get something done. I don’t care how.
It almost never picks MCP.
Not because MCP is bad, but because of the connector step. In most setups, a human has to install and configure the connector before the agent can use it. The agent can’t do that part, so it stops and asks me to get up, go to the computer and click things.
Meanwhile, it could just call the API or open a browser. So that’s what it does.
I’ve had agents quietly work around MCP servers that I’d built specifically for them, only to discover afterwards that they’d never used them.
This also breaks the thing everyone seems to be doing right now: the “copy this prompt to get started” button.
I assumed the point of that prompt was to tell the agent how to use your MCP. But it can’t. Someone pastes it into a regular ChatGPT conversation, and the first thing it does is tell them to go install a connector.
Most people are gone at that point.
So the prompt has to lead with full instructions for operating without your MCP. Which rather defeats the point.
I suspect the connector step eventually dies. Agents should be able to just use these things. Configure yourself, robot.
But here’s why I’m still building MCP.
The whole point of an API contract is to stop the code consuming your API from breaking. You version it, deprecate things slowly, maintain backwards compatibility and support old endpoints for years, because somebody’s code depends on them staying exactly the same.
With an agent, there’s no consuming code to maintain. It reads your documentation in seconds, works out what’s available today and gets on with it. It doesn’t care what the API looked like yesterday.
That means you can rewrite the whole thing whenever you like. You can expose capabilities you’d never bother putting in a conventional API: creating an account, changing a profile picture, deleting an account. The agent picks up the latest instructions every time.
That’s the part of MCP I think survives.
Not connectors. Not directories. Not the installation dance.
Just this:
MCP ends up meaning “API without a contract.”
And that’s a good thing.
Sidedraft is now available as a free #WordPress plugin on GitHub (plugin repo coming soon).
Adds a split-screen draft view to the Classic and Block editors for when you're working from an outline or rewriting a draft.
github.com/alexmangini/sided…
Drafting blog posts with AI makes writing a lot easier, but I find myself making lots of edits and rewriting more personal posts.
For rewrites, it's nice to see the slop draft in one place for quick comparison so I vibed up a split screen #WordPress post editor.
Submitted this to WP.org as a free plugin and pleased to find the only issue is to make the name less generic.
Still got it!
Query Monitor gets a nice new badge style in the #WordPress admin bar.
Had a customer switch from their vibe coded plugin to my own. Reasons:
- Trusted my expertise and time investment over their weekend project (see: authority)
- As their project grows so does their scope, and maintaining isn't as exciting as creating once the wonder is gone (see: pay for results, save them time)
- The product experience I created for them was fun (see: guys just wanna have fun too)
Further, this proves even harder that Authority and Time in Market are important.
If my plugin hadn't existed for so long, the vibe solution would have been more trusted.
If my solution wasn't well-described, it wouldn't have been considered.
And if I wasn't out here shilling, it wouldn't have been found.
Lots of takeaways from this, and further strengthens my conviction to keep building software and websites I want to see exist, and let the ones who see the value follow along. Solves some mental health issues this way, and that might just be good for business!
I read the dictionary like developer docs; when was this word added? which version of humans understand this? why tf was it written like that?
.@SiteGround Love u, but can we get this label down to one line. text wrap making my admin look ugly.
It's wild that PHP ran a mass-distraction psyop the same day Marketers Delight finally made its return.
Blogging on #WordPress will not be stopped!
marketersdelight.com/introdu…
What, no haiku?
wordpress.org/news/2026/10/c…
Alex, Kolakube retweeted
Replying to @attrc
Being part of The Purge: PHP edition was not on my bingo card this October.
🤖 Made with AI
The Purge: PHP
Your websites have 24 hours to survive the purge. Who's gonna make it through the night?
Full details of a remotely exploitable vulnerability in the core engine of *all* PHP versions will be released tomorrow, October 21st. If your organization has internet facing PHP applications then you need to be ready to patch the minute the update is released or *strongly* consider taking the application offline until you can:
php.net/index.php#2026-10-20…







