In August 2022 I signed up for an OpenAI account. I added myself to the waiting list for DALL-E, the image generating AI service. The idea of generated AI images blew my mind, although I also remember them being nowhere near as good as I had seen others generate. That aside, this led onto accessing ChatGPT a few months later and starting to ask it questions and see what it could do.
Over time, new models released by OpenAI got better and better to a point where I began trying AI-assisted coding. The process was “create me a method that does X and returns Y”, or “add this ability to this code making a new function”. Often times it was OK, many times it wasn’t great and I’d drop it, but it helped get through some of the tedious programming tasks far quicker than I could, assuming I didn’t spend those saved hours fixing bugs it introduced. This continued on and off until February 2026 when OpenAI launched Codex on the Mac.
Since the launch of Codex (now ChatGPT) desktop app, I have learned a lot about how to work with AI to create products. For me, using AI to code falls into one of a few buckets.
As explained earlier, AI-assisted coding was all I did with AI until early this year. I have mixed reviews, but ultimately was impressed and carried on trying it on and off. The main challenges were bugs, trying to explain how something should work different, and then after long conversations, getting caught in what might be called a death loop where I assume the maximum amount of tokens was being handled and it just couldn’t function properly anymore. With all the problems aside, it felt like code completion on steroids.
When Codex came along it seemed like a huge step forward because I could then ask it to create something across a whole project and have it modify and create multiple files. I think this step falls into “Vibe Coding” territory where you can tell it what to do, and it will create it. This method of coding is both fun, but not great. Fan Wu worded it well when saying:
“The reality is what most of people get out of vibe coding is not a real product, not even a real front end product. It’s a demo with a fragile backbone.”
This is exactly true. In some cases, this can be used to your advantage in that you can ship something real quick, a very unstable MVP. One real-life example is about six weeks ago I built shelfreliance.co.uk. This is a self-reliance website built on my own knowledge of being prepared with two other friends who are both very interested in being prepared. This was absolutely vibe coded and came about by one of them saying to me “I’d like to build a website where I can share products and plans of how to become self reliant for times of need.” I opened up ChatGPT on my MacBook and told it what to build and asked it to initially just pull in products from Amazon that were related to self reliance. AI picked the style, logo, most of the layout. I just added a few more prompts to tell what needed changing.
I purchased the domain, put it on a server, asked ChatGPT to deploy it, and that was that.
Given that the project was set up to share my friends recommendations and not some AI guessed products, shortly after we listed actual products that have been used and fed a spreadsheet to ChatGPT and said “replace all products on the websute with the ones in the CSV file”. Ten minutes later a nice fresh updated site deployed.
A few days later the server crashed; not from traffic, but from a poor design choice for the stack that I didn’t even question and just blindly accepted. I gave it more guidance and told it to use Jekyll so that its just standard HTML and JavaScript. I still don’t know what any of the code looks like. I’ve never looked at it. In our case, the site works great, there is good social media interest, and it works as is for now.
Vibe coding is great for a quick release, but it seems that its just the short-term option. Once an idea has been quickly tested, the code that runs it can be put together with something more robust, and probably should be if you want something to become more serious. One challenge is thinking about next versions. User logins, databases, services, iPhone and Android apps etc… This is where vibe coding shows its weakness.
This leads onto Agentic coding that helps address these issues. I am currently responsible for leading the build of the ToolShare UK service and app. Vibe coding this is not an option as it will handle tool rentals in the community which will involve small transactions, rental planning, return of those rentals, reviews, messaging, notifications and so on. An app with a “fragile backbone” just wont cut it. We cannot afford to have AI make some bad choice such as storing tool rentals in browser cache (yes, it tried something like that). It needs more planning and to be more intentional.
I find with agentic coding, you can prompt it with a feature of modest size and ask it to build it. With a robust skill and monitoring by a person with software engineering skills, it can create some really impressive code really quick. Testing can be built in. Deployment can be automated. GIT branching can be automated.
The skill(s) needed can be created with AI and have a human proof read it to ensure it follows certain patterns for the company. I find with agentic coding that I give it a task and let it build. I then look at how it works. I don’t spend a long time on this. I mostly ignore front-end code after the first few features knowing that it understands how I want the frontend to work, but do look deeply at the shared services and server services and endpoints. I need to make sure data that is added in Cosmos is done right. When I see problems, I adjust the skill as needed. Sometimes AI wins a discussion on the right way to do something, and other times my option is used. In most cases, its about the skill and giving it more context. Train as you progress in your project.
Just yesterday I filled in an application for some work that required a coding challenge. AI was banned. Although the thought processing used to work out the solution manually was good fun and a reminder of how things were not that long ago, it now feels that programming without AI is more like a hobby, and yet, still a much needed skill to create the quality of software needed.