I'll say it plainly: I am not a developer. I can read code, understand basic logic, and have picked up HTML and CSS over 18 years of design work. But writing JavaScript from scratch, setting up databases, or building backend APIs? That was never my world.
Then something shifted in late 2026. I launched EaseBills.life — a free, privacy-first bill reminder app — without a developer. And then I started building WisdomDeep Digital's full website from scratch. Both of these happened in months, not years, because of a way of working I now call "vibe coding."
What is vibe coding?
Vibe coding is a term that's been floating around the AI-developer community to describe a workflow where you describe what you want in plain language, an AI writes the code, you review and iterate, and the AI fixes what's broken.
It's not magic. The output requires judgment — you still need to understand whether what was built actually works, whether it's secure, whether it'll scale. But for a designer who understands user experience, visual hierarchy, and product logic, it dramatically lowers the barrier to building.
Vibe coding works best when you have strong product judgment and communication skills — which designers tend to have. You don't need to write the code. You need to know exactly what you want, why you want it, and how to describe it clearly. That's a design skill.
My actual workflow
Step 1: Design first, always
Before I write a single prompt, I sketch out what I'm building. Usually in Figma for complex products, sometimes just on paper. I need to know: what are the screens? What does the user flow look like? What are the edge cases?
Skipping this step is where most people get lost. If you start prompting AI without a clear picture of what you're building, you'll spend 80% of your time course-correcting instead of building forward.
Step 2: Describe the whole, build in pieces
I start by giving the AI a complete picture of the project — the purpose, the user, the key features, the tech constraints. Then I break it into small, shippable pieces and prompt for one piece at a time.
"Build me a bill reminder app" is a bad prompt. "Build a single HTML page that lets a user add a bill with a name, due date, and amount, saves it to localStorage, and shows a list of upcoming bills sorted by due date" is a good prompt.
Step 3: Review, test, describe what's wrong
When something doesn't work, I don't try to fix the code myself. I describe the problem to the AI in plain English: "When I add a second bill, the first one disappears. The list should show all bills, not just the most recently added one."
- Be specific about what you expected vs. what actually happened
- Show the exact error message if there is one
- Describe the user action that triggered the problem
Step 4: Iterate in small increments
The biggest mistake new vibe coders make: trying to change too many things in one prompt. Each prompt should do one thing. Change the layout. Add this feature. Fix this bug. One thing at a time.
📌 Save working versions
Every time something works well, save a copy of that file before prompting for the next change. AI can break working code accidentally when modifying adjacent parts. Having a rollback point saves significant time when this happens.
Tools I actually use
- Claude (Anthropic): My primary AI for code generation, design decisions, and copy. Strong at understanding design intent and generating HTML/CSS/JS.
- Cursor: A code editor with AI built in. Useful when building more complex multi-file projects.
- AWS Amplify: Static site hosting and deployment for HTML sites. Reliable publishing with managed hosting and custom domain support.
- Figma: Still my design foundation. Vibe coding doesn't replace design — it builds what design specifies.
What I've actually built
EaseBills.life: A privacy-first bill reminder app that runs entirely in the browser. No accounts, no servers, no data collection. Built with HTML, CSS, and JavaScript. Launched in 2026, completely free.
WisdomDeep Digital website: The site you're reading right now — six pages, mobile-responsive, dark mode design, GA4 tracking, working contact form. Built in a week.
Neither of these projects would have been feasible for me a few years ago without hiring a developer. The AI didn't just save time — it made the projects possible.
Where vibe coding breaks down
It's not a solution for everything. Vibe coding struggles with:
- Complex backend systems: Authentication, payment processing, databases at scale — these require real engineering judgment that AI can assist but not replace.
- Security-critical code: Always have a qualified developer review anything that handles user data, payments, or authentication.
- Performance optimisation: AI-generated code is usually functional but not optimised. For high-traffic products, you'll need someone who understands performance profiling.
What this means for designers
The line between designer and builder is blurring. Designers who learn to vibe code can prototype faster, validate ideas without waiting for a developer, and have more meaningful conversations about what's technically feasible.
It doesn't replace development. It changes what's possible for people who care deeply about design and have strong product instincts — but previously couldn't build without a technical partner.
For me, it's opened up a new dimension of what my studio can create. And we're just at the beginning of what this way of working will make possible.
Need help applying these principles?
18+ years of McKinsey-trained design. Let's make your ideas impossible to ignore.
Start a project →