“Vibe coding” means describing to an AI something you want to make and letting it write the software. This technique relies on “AI Agents”, which break down a goal into smaller steps and execute each one. Agents rely on LLMs or, increasingly, LRMs (large reasoning models) to self-reflect on their work in real time and redo things that seem off. I wrote a bit about it in my last post.
There are good reasons to be a vibe-optimist right now: 1) AI coding tools are cheap; 2) software for talking to your computer is cheap; 3) LLMs and LRMs are very good at writing code. And all of these are improving quickly…like, by the day.
It’s fun to explore the boundaries of vibing by making stuff; and it doesn’t really matter what you create, it’s the process that’s fascinating. Experimenting helps build intuition about when to let the AI drive and when to take the wheel.
It’s not just coding
This post is about an experiment where I used a variety of AI tools to build and launch a software product from start to finish. It’s a Chrome Extension called “Da phaq?” (Boston slang for “would you kindly rephrase that?”) that lets you select text from any web page and immediately get an simple explanation.
Spoiler: daphaq.com
Software Creation Process
Building software is much less geeky than you’d think. It’s inherently a creative process with several steps: You need an idea, then you need to code it, package it for use, make it available via distribution channels (e.g. downloadable software or a web-based tool), and let people know it exists.
Tools for this project
Here’s the tech used throughout the process:
Cursor - Primary tool for vibe and hands’ on coding
Wispr Flow - So I can talk to Cursor instead of type (because laziness is next to godliness)
Midjourney - Image generation
ChatGPT - Image generation, idea exploration, text creation
Lovable - Used to make the “landing page” described in the Market It section below.
Creatify AI - Ad creation
AWS Amplify - Website hosting
LLMs/LRMs - Claude 3.7 Sonnet; GPT 4o
Tools evaluated but ultimately not used:
Eleven Labs - AI voice creation
Runway ML - AI video generation
Sora - AI video generation
The Idea
Tools used: Human brain
One of my main uses for ChatGPT is to help understand things I read online. I’m constantly copying text from one tab, switching tabs to ChatGPT, pasting it in, and asking for an explanation.
Who has time for that?
Wouldn’t it be better if explanations were built right into the browser? What if I made a Chrome Extension?
This met my criteria for a vibe experiment: it’s small, fairly simple, and it doesn’t matter if the software becomes obsolete next week when Chrome rolls out their own feature.
Make It
Tools used: Cursor; Wispr Flow
To code the tool, I fired up Cursor and started speaking:
Today we're going to create a Chrome browser extension called WTF? And what it does is it's going to allow the user to select any text on any webpage and it sends that information, whether it's text or image or whatever, to an OpenAI model GPT-4o-mini, and it asks GPT to explain it in lay person terms. Here are some links for getting started on how to build chrome extensions. And I don't know anything about coding Chrome browser extensions. I know quite a bit about Python and open API, so I can help you with that, but you're really going to have to run forward on this. So ask me questions about how the UX, but I'm relying on you to figure out how it actually does its work.
[Notice that my spoken text is messy - sometimes I use poor grammar or I ramble. But LLMs don’t care. They get it. So talking, rather than typing, can really speed things up since you spend zero time word-smithing or editing.]
Then I pasted in a few links the AI could use for reference:
@https://developer.chrome.com/docs/extensions/get-started @https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world @https://platform.openai.com/docs/concepts
Within about 10 minutes, I was testing the extension in the browser. Tweaking took another couple of hours and there were things the AI couldn’t get right, like working with online PDFs and images. But learning when to give up on a feature is part of developing intuition.
You may have seen in the above prompt that I originally wanted to call this, “WTF”. The named changed because another WTF Chrome extension already existed. That’s ok - constraints breed creativity and this wound up helping with my branding.
Brand It
Tools used: Midjourney; ChatGPT
Logo and graphics
I like Midjourney for exploring visual ideas. Their home page is an endless source of inspiration and you can copy the underlying prompt of any image you like.
The day I worked on this project, there was a simple line drawing that caught my eye. I copied the prompt and modified it a bit to suit my needs:
simple logo, lineart, monoline, funny looking, confused duck with a question mark above its head, full body, stencil style, minimalistic, vector, white background
For some reason I wanted a duck. I don’t know why but just went with the flow.
Within a minute Midjourney gave me four images:
I went with the one on the top left, downloaded the pic to my project folder and asked Cursor to duplicate the image in the different sizes required by the Chrome Extension store.
I had a few other graphics I wanted to make in the same style, but the experience was hit-or-miss because Midjourney doesn’t handle variations very well. But I started this project back in the dark ages—the third week of March. In the fourth week, OpenAI released its new image model, which made everything much easier. I just uploaded my duck logo and said:
draw a closeup of this duck where he's looking at the camera with eyes wide and mouth open
Cool. Ready for the next step.
Domain name
I still needed a different name because WTF was taken. “Da phaq?” sounded like a duck from Boston and made me laugh so I went with it. Check. (If you want to hear a Boston accent in action, look up the video “We witnessin' a baby whale kid”)
I asked ChatGPT for recommendations for domain name registrars and it pointed me to namecheap where I picked up daphaq.com for $10.
Email
Now that I had the domain, I needed an email—but I didn’t want to spend money on a service just for this little widget. I told ChatGPT that I had a Google Workspace account for my business, which gives me one email, and asked if there was a way to get another one for support@daphaq.com for free. Yep. It gave me step-by-step instructions for setting up things like DNS entries, CNAMEs, TXT records, and MX records. These are all web admin tasks I know very little about, so having clear guidance was incredibly helpful. It’s a great example of how LLMs can be more useful than digging through scattered technical documentation online.
[Important note: LLMs live in the past — for example, GPT-4o’s training cutoff is June 2024. This means that their guidance can be outdated and, in fact, one of ChatGPT’s recommendations around email setup conflicted with what the Google form said. Sensing something was off, I asked ChatGPT to search the web to verify its response. Sure enough, it found the updated info, apologized, and revised its guidance.]
Pack It
Tools used: Cursor; Wispr Flow
Chrome extensions actually have a bunch of files, so you need to package them up into a single, zipped file. This was easy,
Please zip up the project for uploading to the Chrome store
Ship It
Tools used: Cursor; Wispr Flow
Google handles the distribution of extensions through their store. Once approved, extensions are posted it to their cloud which has a global reach.
By far, the most tedious part of this project was filling out the Google forms to publish the extension. Since I’d never done it before, I pasted form screenshots in Cursor and asked it to write the required text based on its understanding of Da phaq’s code. It responded with confidence, and by the time I finally hit submit, I felt like a winner.
But after a three day wait, my extension was rejected.
I took this info back to Cursor, yelled at it, and asked it to fix the problems once and for all. “Oh yea, Google’s right. We didn’t need to ask for that permission. Sorry.” It made a couple changes, I re-zipped the code and resubmitted to Google. Back to waiting. Sigh.
After another three days it was approved.
There’s an important lesson here: AI Agents aren’t ready to be trusted with important tasks. Even though one Agent may be responsible for evaluating another Agent, all suffer from the same limitations of LLMs.
Dr Seuss foresaw this problem in 1973.
Wasting six days waiting on a Chrome Extension approval is nothing compared to filing your taxes wrong, or a patent, or a new drug application.
Market It
Tools used: Lovable; Cursor; Wispr Flow; Creatify AI
Website
Web pages for software products are known as “landing pages,” and there are established best practices for their format, information order, and level of detail. I needed a tool that was good at graphic design and making landing pages.
It turns out that Lovable is great at this task and has a free version.
[Interesting note: Lovable and Cursor use the same LLMs, but their results can differ because of how each tool applies the models.]
I uploaded my logo and asked for a modern landing page. What blew me away is that it analyzed my image and created a web design using the same, simple color palette.
Once it had the basic scaffold, we vibed on the text and some details until I ran out of free credits. But by that point, I had plenty to work with so I took the Lovable code and continued to work on it in Cursor.
You can see the full website here, https://www.daphaq.com
Online ad
The current fad for online ads are short, rapid fire testimonials. They all seem to have a bubbly person sharing a problem until their life was transformed by an amazing new product. Cliche, but at least there’s a framework to work with.
I chose Creatify AI randomly and was pretty impressed. It generated ad text based on the dephaq.com website; the avatars and voices were good; the editing tools gave enough freedom to customize; and it had a smart design for user experience. You can see the ad on the landing page.
Onward
All in all, this project took a couple days (not counting waiting for Google’s approval). I’m guessing it would have taken me a week or more without AI tools.
My final impression is that vibe software production is real, if imperfect. A few things just didn’t work until I took the wheel but getting comfortable with the techniques was time well spent.