If you believe some YouTubers, anybody can build websites and apps these days with the help of AI, no coding skills required. But is that really the case and even if we can, should we?
As a UX consultant who is more comfortable running UX audits than coding, I thought I would find out. I haven’t written any serious code for years and now firmly fall into the category of “a little knowledge is dangerous” when it comes to development.
But I decided to have a go and see what happened.
What is vibe coding
Just in case you haven’t heard of the term vibe coding, let’s take a moment to define what exactly I am talking about.
Let me start by saying that I hate the term “vibe coding” and would much prefer a term like “assisted coding.” Unfortunately, I don’t get to name things.
That said, vibe coding is essentially the process of using AI to help write code, where you describe what you want in plain English and the AI generates the code for you. Think of it as pairing with an AI developer who can understand your intentions and turn them into functional code.
It’s particularly appealing for people like me who understand what they want to build but lack the technical expertise to implement it efficiently. Rather than spending hours Googling syntax or troubleshooting errors, vibe coding lets you focus on what you want to achieve while the AI handles the implementation details.
Sounds great, right? But it does depend on finding the right tool for you, otherwise you can get out of your depth very quickly.
Selecting the right tool
My first experience of vibe coding was simply using ChatGPT to help me build a simple survey tool for top task analysis. I found it a deeply frustrating experience because I couldn’t test whether the code worked without uploading it to a server that could run the code. Although I did get it to work, I wasted a lot of time going back and forth between ChatGPT and my hosting environment.
At one point in this painful process, I realized I could do with a better tool, and so after a quick Google, I decided to download Cursor. This was a mistake.

As somebody who thinks a Git repository is a collection of particularly annoying British people, I was immediately intimidated by Cursor. This was obviously a tool built for developers, not the likes of me. I, therefore, skulked back to ChatGPT and carried on regardless.
However, when I decided I wanted to create a calculator that would calculate the return on investment of UX projects, I realized this more complicated project would require a better tool.
So, this time I more wisely asked AI which introduced me to the world of tools like Bolt and Lovable. These tools didn’t require me to have an understanding of databases, hosting environments or anything else. I could rely entirely on the platform to handle all of that.
I settled on Bolt for no particular reason and jumped straight in.

Writing my specification
I blame the Bolt website for what happened next. It presents you with this tiny input box (as you can see above) and asks you to type in what you want to build. That small input field seduced me into thinking I could just provide a basic description of what I wanted. I was wrong.
The application did indeed deliver a UX ROI calculator, but it made so many assumptions as to make the final thing largely pointless.
I don’t know what I thought would happen. You couldn’t get away with that vague a brief when talking to a developer, so I have no idea why I thought things would be different with an AI.
So instead I sat down and wrote the most detailed specification I could think of. I outlined:
- every question I thought would need to be asked,
- every calculation that would be needed,
- provided some basic styling instructions,
- explained how I wanted to integrate AI to help people answer the questions,
- how users should be able to get the final report emailed to them.
I tried to be thorough, but if I am honest, I eventually got bored and just wanted to see what happened.

I was gobsmacked at the results. Not only did it seem (note the “seem” there) to have created a fully working app to my specifications, it had also improvised filling in many factors I had failed to consider. For the first time I was genuinely excited about the potential of vibe coding.
But little did I know I was only at the start of my journey.
Designing with code
Because I come from a design background, I immediately noticed all of the UI elements I didn’t like and so set to work fixing things.
Now I could have uploaded a Figma file as a starting point, but I am kind of glad I didn’t. Turns out it was remarkably easy to select items and request changes with minimal additional effort.
It came as a surprise, but I think it would have taken as long to mock something up in Figma as it took me to work with the AI in code.
It was easy to select screen elements and ask Bolt to make changes.

In many ways it reminded me of the pre-Figma days where I would design in code, which was often preferable to working with something like Adobe Photoshop.
In fact I was so impressed by this experience that I honestly think tools like Bolt make a viable prototyping tool for designers, especially considering some of the shortcomings in Figma Design such as its inability to prototype data entry fields.
It opens up the possibility of creating design prototypes that realistically replicate the functionality of the final build in a way that hasn’t previously been possible. This will make the job of selling design approaches to stakeholders who struggle to visualize approaches much easier.
Of course, there were certainly frustrations, especially with some of the more functional elements.
Working through the frustrations
As I started to test my application, I did find that everything was not as impressive as it first appeared.
The two biggest issues were with emailing the report and the AI recommendations. In both cases it hadn’t integrated with the appropriate services to deliver the functionality. Instead it had just built the user interface, which didn’t do anything.
Fortunately, fixing the AI recommendations was fairly straightforward. I had to give it an API key and it did the rest.
Email, on the other hand, proved a bit more challenging. There was a lot of back and forth trying to diagnose the issue. It was insistent that it was down to issues with how I had setup Brevo (the email provider I was using), while it turned out to be a problem with its code. However, I have had similar conversations with developers, so really that can’t be held against it!
There were a host of smaller issues too. Working through these were frustrating and it had a habit of trying the same fix again and again rather than adopting new approaches. I often had to suggest alternative ways of working to fix the issues. This is where my limited coding experience did prove handy. If you had no coding experience whatsoever you may well have not known how to move forward.
Then there were occasional problems with the platform itself. The preview wouldn’t refresh sometimes, the AI would get stuck thinking and once or twice it just refused to connect to the AI entirely.
But I got there eventually and you can play with the app yourself on my site if you like.

Of course, the question is: would I use vibe coding again?
Would I use this again?
As with so much in life, the answer is “it depends.”
As a non-developer, I think vibe coding has huge potential for prototyping. It allows you to visualize a user experience in a fidelity that has not been practical previously.
I also think vibe coding is great for small little applications that have a limited use such as my ROI calculator.
But, and this is a big but, it is not a replacement for a developer. Even as a non-developer, I can tell this is not really production-ready code. To be fair, I don’t think this is necessarily the AI’s fault. It is a shortcoming in my knowledge.
I do not know everything that I need the AI to consider. Unless you brief it to consider accessibility, security, performance and all of the other nuances that only a developer properly understands, AI is not going to know to do these things. It takes a developer to properly brief these platforms and to assess their output to judge their quality.
I am old enough to remember the desktop publishing revolution. Suddenly everybody had the tools to create their own posters and fliers. There was talk of graphic designers (my chosen career at the time) becoming obsolete. Why do you need a graphic designer when you can do it yourself?
However, the result was designs that looked hideous, using far too many colors, having no layout structure and riddled with Comic Sans. Now this didn’t matter for the local village festival, but it soon became apparent that for anything more important you needed a professional.
The danger with vibe coding is the same. Yes, these tools allow anybody to create small apps for low-risk endeavors or quick prototypes. However, for anything important, we are going to still need a professional using these AI tools to get the most from them.