vibe coding · platform design
My first WordPress plugin
A vibe coding experiment that shipped, and got noticed.
Solo builder across product, engineering, and design, using Lovable, GitHub Copilot, Visual Studio, and WordPress. Summer 2025.
Problem
Every off-the-shelf WordPress text-to-speech plugin I found required a paid subscription.
Move
Prototyped in Lovable, checked the code with Copilot, then cut scope to one job, reliable playback.
Outcome
A free, self-contained narrator on every page of this site, also published on GitHub.
The context

I spend a lot of time listening to music, audiobooks, and podcasts. So it made sense to want the same experience on my own website. I also wanted it to be free, self-contained, and not tied to a monthly subscription. What I didn’t expect was that building it might become the most useful thing I did all summer.
This is how a non-developer used AI tools to build and ship a custom WordPress text-to-speech plugin, and what happened next.
Act 1:How I got to Lovable
By mid-2025, vibe coding was all anyone was talking about. I started pelting my soccer buddies with questions about training LLMs and which IDE was worth using. By day they worked as database developers, engineers, and data scientists. They pointed me to tutorials, and I went deeper with Python exercises and Kaggle. I started reading code instead of just copying it.
My first real experiment was in Lovable.dev, trying to build a simple, bot-resistant contact form for this site. I was frustrated with the exercise and losing confidence in its value fast.
Create a bot-resistant simple embeddable form to collect name, email, and a brief message for deployment on my WordPress 2025 templated website. Ideally, would like to collect entries on a Google sheet or Airtable.
My starting prompt
It didn’t go anywhere I wanted. So I pivoted.
Act 2:The idea: a plugin that reads my pages aloud
I’d looked at off-the-shelf WordPress text-to-speech plugins but they all required paid subscriptions. I wanted something free, self-contained, and mine. With those two constraints as a rough product spec, I started prompting in Lovable.
Lovable’s enthusiasm was immediate, and immediately suspicious.
This is a fascinating request! You want to create a WordPress-compatible web widget that can read and analyze the text content of any webpage it’s placed on. This evokes modern accessibility tools, content analysis widgets, and reading assistance plugins.
Lovable.dev
By now most of us know that feeling. Either you’re suddenly very talented, or you’re being managed. I pressed on.

Act 3:The dream, and then the constraints
At first, the sky seemed like the limit. I was experimenting with multilingual versions, accent choices, and displays that tracked your position in the text. I’d only signed up for a month of Lovable, so I had a built-in deadline.
The early versions required a Supabase connection and third-party integrations that were sometimes working, mostly not. Playback would stall. I kept asking why, and the debugging loop became its own project. I spent every evening describing what I needed in step-by-step detail. Slowly it became clear that the complexity was the problem.
I went back to basics. Just make it play reliably. No frills. No language choices.
I started pulling code artifacts from Lovable and running them through Visual Studio Copilot. It was a useful gut-check on what could break and what might be unsafe. I also leaned on my product background. I’d been through enough user acceptance testing to know when to cut scope, and this widget just needed to ship.
Act 4:What I ended up with

It’s the play button in the bottom-right corner of every page on this site. It’s simple, self-contained, and needs no subscription. You can also grab it on GitHub if you want to try it on your own WordPress site.
Building it taught me to read and reason about code I didn’t write. I learned to test in small loops, cut scope without losing the point, and ship something that works. I’d used those skills for clients for years, but never on my own tools.
PostScript
The plugin may have played a role in landing a contract with ServiceNow. That work led to many deep dives into a hyper-accelerated, AI-first approach to shared language and content governance. It also meant orchestrating across business units as teams raced to deliver a simpler experience for commercial admins.
My developer friends scoffed at the idea of shipping production code from a vibe coding app. They remain supportive, and keep encouraging my experiments with MCP servers and integrations with Figma and other tools.
Curious what I would build for you?
The plugin is free on GitHub. The thinking behind it travels.