I've been building websites and applications since the late 1990’s. Over this period, I've seen a lot of change. Back then, everyone was full stack— these days, you have front-end developers, back-end developers, DevOps engineers, database engineers, cloud engineers; the list goes on.
I've seen front-end frameworks grow from nothing through to jQuery, then onto incredible platforms like React and Vue.
And back-end frameworks like Laravel have transformed how developers build out the server side of their projects.
With all of this change, however, nothing comes close to the impact AI is having on developer workflow. It’s a genuine sea change— a revolutionary shift in how humans work with computers to build software.
AI-powered development tools like Cursor and Claude Code are supercharging the amount of functionality a team of developers can produce. And more interestingly, platforms like Loveable and Replit are opening the door for non-technical users to build and deploy software without writing a single line of code.
There has been a lot of industry excitement about this, with people claiming that developers will no longer be needed, and that organisations will be able to build apps and scale them without a technical team.
X is awash with stories of young entrepreneurs making $50k per week from their AI-produced app, and there’s so much hype that a new term has been coined for this phenomenon: "Vibe Coding".
Since ChatGPT landed back in 2022, I've been using AI extensively in my workflow, and I've experimented a fair bit with vibe coding too. As a veteran developer, I’m in the minority in thinking that AI is a positive thing for the industry, but my feeling is that we are some way off vibe coding replacing experienced developers.
In this article, I aim to explore both the opportunities and risks of vibe coding, based on my own experience.
What is Vibe Coding?
Vibe coding, at its essence, is about rapidly building digital tools using AI assistance with minimal technical knowledge. Rather than meticulously crafting code line by line, vibe coders describe what they want in plain English and let AI write and deploy the code in full.
What makes vibe coding so revolutionary is its accessibility. People who would never have considered themselves developers can now create functional applications in a fraction of the time.
The potential of this technology has sent waves through tech communities across the globe. Entrepreneurs are excited about the ability to bring technology to market at a much lower cost, and technical teams are increasingly concerned about the future of their roles.
Benefits: Speed, Simplicity, and Innovation
The most obvious benefit of vibe coding is the astonishing pace at which an application can be built. With some basic prompting and a couple of hours of back-and-forth with the tool, a vibe coder can produce a working application that would have taken days or even weeks of effort to develop traditionally. This ability to rapidly prototype and iterate opens the door for businesses to test ideas in the market much faster than before, and at a much lower cost.
The simplicity and accessibility of vibe coding is effectively democratising software development. By lowering the technical barriers to entry, it allows a fundamental redistribution of creative power, moving coding beyond the exclusive domain of trained engineers.
It also opens the door to innovation from unexpected quarters. Individuals with deep domain knowledge but no coding skills can now directly translate their insights into working applications. Where technical knowledge and development cost once presented major hurdles, they can now prototype and test ideas without a traditional development team.
Security Concerns: The Risks Beneath the Surface
Despite these compelling benefits, there are serious risks lurking beneath the surface of AI-generated code, particularly in the realm of security.
The fundamental challenge is simple: How does a know-nothing programmer spot bugs and security flaws? The simple answer is that they can't. When non-technical users build applications using AI, they lack the training to identify common vulnerabilities like SQL injection points, cross-site scripting opportunities, or insecure authentication mechanisms.
You can use AI to audit your code or to resolve issues flagged by automated testing tools, but there’s a good chance that in doing so, new vulnerabilities are introduced. It’s like AI marking its own homework.
Consider the cautionary tale of Leonel Acevedo, who built EnrichLead— a lead generation platform— entirely through vibe coding. The application was initially hailed as a commercial success and a showcase for vibe coding, until hackers began exploiting its security flaws and exposing the unreliable nature of his application. Leo, completely out of his depth, struggled to fix the issues while publicly melting down on X.
Code Quality, Front End Weaknesses, and Maintainability
Beyond security, AI-generated code often falls short in terms of quality and efficiency. A common issue I’ve seen across various AI coding assistants is incredibly bloated implementations; functions that use 30 lines where 10 would suffice, and huge webs of unnecessary dependencies. Sometimes these even include APIs that require paid subscriptions, when a short function would do the job just as well.
With bloated code comes maintainability challenges. As code bases grow larger, these AI tools start to struggle with the increasing complexity of the application. They often produce duplicate code because their context window isn't large enough to recognise that a chunk of code already exists, which in turn makes the code base even more bloated.
I've seen this pattern play out many times with inexperienced human developers, or in websites that have been handed from pillar to post over many years— each team sellotaping another layer of functionality over a foundation of poorly constructed features.
The result is a complete nightmare: even the simplest of changes become difficult to implement, and the platform becomes unsustainable in the long term.
Without the discipline and architectural foresight that experienced developers bring, vibe-coded applications risk becoming digital debt— debt that eventually comes due, with interest.
Front-end development also poses its own particular challenges for vibe coding. AI simply cannot properly assess layouts for accessibility or usability— it lacks the visual intuition and contextual awareness required. When I've had AI generate front-end interfaces, they've typically been functional but rudimentary, failing to account for basic design principles or differing user contexts.
Additionally, AI struggles to visualise full user journeys. It can build individual screens or components, but crafting a cohesive experience that intuitively guides users through an application requires human insight. The interfaces it produces tend to be basic and often break down when updates or extensions are required.
My experience with vibe coding
Overall, while AI is deeply integrated into my development workflow, I still struggle to build anything of real quality without going into the code myself.
Whenever I’ve attempted to vibe code an application, I start to see issues with its structure fairly quickly. With every prompt I feed into the app, I need to review the resulting code to ensure it is doing what I intended— and doing it efficiently. Often, it gets things right, but I’d say around 30% of the time it goes off on a tangent, either overcomplicating the solution or misinterpreting the prompt and building something incorrectly.
Without my own coding experience, I wouldn't be able to spot these issues, and the results of my vibe coding efforts would be mediocre at best.
As such, I could never fully trust a vibe coding tool to produce a complete app, because I know, under the surface the quality wouldn’t be up to my normal standards.
Over-Reliance and the Future Trap
There's another subtle but serious risk emerging: platform dependency. As organisations and developers increasingly rely on AI coding assistants, they become vulnerable to changes in these platforms' availability, pricing, or capabilities.
Most AI coding tools are proprietary services rather than open-source technologies. So what happens when the company behind your favoured AI assistant doubles its prices or restricts functionality?
AI models are expensive to train and run. At present, these models are available to the public at a very low cost— but this isn't sustainable. The companies behind these models have been largely supported by huge amounts of investment funding, but when investors start demanding returns, the costs of using these models will inevitably increase.
We are currently in the early stages of what some have dubbed ‘enshittification’. AI vendors are battling for dominance by offering incredibly powerful services at low prices in order to win market share. But once a clear winner emerges, we’ll enter the next phase; the monetisation of subscribers.
At this point, we'll likely see significant increases in the cost of accessing the models that power these AI tools. Millions of developers and vibe coders may find themselves fully dependent on these tools, with little choice but to pay the higher fees or suffer a gradual reduction in quality of service. It’s a concerning future trap.
Beyond cost, over-reliance on AI risks eroding human coding skills. Personally, while AI has massively boosted my productivity as a developer, I can already feel it dulling the edge off my raw, hard-earned coding abilities. What does this mean for junior developers entering the industry? Will they ever gain the experience required to oversee quality AI-based application production? Will they even need those skills? I don't really know.
Balanced Adoption is Key
Vibe coding represents a genuine paradigm shift in software development— one with tremendous potential to democratise creation and accelerate innovation. The ability to rapidly translate ideas into working applications without deep technical expertise is truly revolutionary.
For simple, non-critical applications— such as internal tools, prototypes, and personal projects— embracing vibe coding wholeheartedly makes perfect sense. The productivity gains are simply too significant to ignore.
However, for systems that handle sensitive data, perform critical functions, or require long-term maintenance, experienced human oversight remains essential. The ideal approach combines AI's generative power with human judgment, architectural planning, and security awareness.
The current pace of technological development is pretty frantic, and we will undoubtedly see improvements in the quality of vibe coding tools. Yet I struggle to see a future where the input of an experienced human developer is not required for production-grade systems.
My advice to organisations exploring this new frontier is straightforward: embrace these powerful tools, but do so with clear boundaries and appropriate safeguards. Invest in developing the human expertise needed to evaluate and refine AI-generated code. Establish clear guidelines for when vibe coding is appropriate, and when traditional development practices should take precedence.
The future of software development isn't about choosing between humans or AI— it's humans and AI working in concert, each contributing what they do best. Those who master this partnership will gain tremendous advantages in the years ahead, whilst those who naively surrender all judgment to automated systems may find themselves with impressive short-term gains but long-term vulnerability.
As with all revolutionary technologies, the winners will be those who approach vibe coding with both enthusiasm and wisdom.