AI wrote all the code. I still did most of the work.
I built an app with AI and found that vibe-coding is still coding. Only, you don’t code the app, you code the developer.
Apparently, the best developers have stopped writing code. CEOs expect tools like GitHub Copilot and Claude Code to accelerate development, so they are aggressively cutting jobs.
But the main reason software bosses are having a hard time of late is the fear that AI will eat their lunch by allowing non-technical users to build apps using prompts, a technique known as vibe-coding.
But can you really replace software with vibe-code apps? I set myself the task of building one, and learnt 3 lessons:
Vibe-coding is still coding, but of a different kind
You can save some SaaS costs with vibe-coded utilities
AI is no substitute for a strong dev team
I. The challenge: Connecting Teams to AI
My objective was to increase adoption of Nous, our AI-powered knowledge base, by embedding it into our most everyday tool: Microsoft Teams. When a user asked @nous a question in any Teams channel, the bot would retrieve the answer and display it right there in the feed.
As neither platform supports this out of the box, I would normally have to rely on an automation tool like Zapier or Make. However, this was one more thing to pay for and worry about. Instead of bugging my dev team, I thought: why not build it myself?
My app is functionally simple but technically nontrivial. It involves data integration between two systems, each with its own language and security settings. Aside from documentation for the Nous API, I had no idea where to start, how to test it, or where to deploy it.
Sleeves were rolled, and off I went.
II. Getting started. “Wow!”
I described my use case to Claude and was presented with a plan and all the important questions up front: Was I happy to write code, or did I prefer the Azure Bot UI? Code, please. Did I want to use C#, Node or Python? Node, please. I’m familiar with JavaScript syntax, so I can stay in the loop.
OK. Ready.
Bang.
Within seconds, the project was fully scaffolded, and 100 lines of well-formed, readable code were produced and ready for review. I ran through it: Claude had installed a couple of libraries from Microsoft to handle the Teams request, initiated the app, and set up a method to route the query to Nous AI. A bunch of best practices that even senior devs often overlook were all taken care of.
It was, I'll admit, impressive. What else could I make? What software could I replace with micro-apps? Can I vibe-run the business while the dev team focuses on paying customers?
Not so fast.
III. Connecting the dots. “Really now?”
For starters, there was still lots to do.
First, there was an incredibly long process for adding the bot to the Azure portal. It’s bad enough to deal with a clunky UI, but I was then sent down dead-end paths and blind alleys. Claude responded to my growing impatience like a true developer: by shifting blame (“Azure changes their naming too frequently”) and offering grumbling apologies for missteps.
Eventually, (and, embarrassingly, with a bit of additional help from Gemini), we got somewhere. I could now see Teams messages hitting the local server. And then things got farcical.
Looking at the logs, I could see that what was passed from Teams was being twisted before it was sent to Nous. The solution was laughably evident, but determined not to make changes manually, I asked Claude to check the part that was likely not working. After it failed repeatedly, I commanded it to make the change. It went completely over my head, refactored the entire function, but kept the error nicely intact.
Reader, I lost my shit.
I made the change manually, deployed some choice Greek profanities and sure enough, results started coming through. I soldiered on, hoping that the worst was behind me.
IV. To infinity and be-yawn
Deploying the app on Azure and hooking the live URLs was easy enough. Adding some touches — letting the user ask for sources, set the response size and enforce a tone of voice — was relatively painless. Returning to it a few days later, I appreciated not having to remind myself how it worked: I described the feature, and it was implemented within minutes.
Nonetheless, the overall effect was anticlimactic.
True, I had saved a few hours researching and adapting examples shared on Stack Overflow (note: no developer ever writes code from scratch). But my enthusiasm was forever dampened by the expectation that this tireless and brilliant developer could fail at the simplest task at any time.
V. Takeaways for business
In many ways, this is a typical AI journey: an initial burst of wonder, swiftly followed by a realisation of its limitations. Before we know it, we are working hard to make the best of our new capabilities. I take away 3 lessons:
1. Vibe-coding is still coding
Vibe-coding, it turns out, is still coding. The difference is you don’t code the app, you code the developer. Your AI developer is mostly brilliant, but sometimes infuriatingly dumb. To make the most of vibe-coding, lean into your delegating and coaching skills. Learn how to create and manage the context window and provide clear instructions patiently and consistently.
2. Audit your SaaS portfolio
The average SME has more than 100 software subscriptions, many of which are typically not sanctioned by the organisation. Audit your SaaS portfolio and look out for “Shadow IT”: department-level applications that add more complexity than value. I replaced a Zapier subscription with a vibe-coded bot. How many of your 100+ tools could get the same treatment?
3. Software will always need developers
Unlike my simple utility, business software is complex and critical to operations. In fact, as hackers also use AI to orchestrate attacks, software development is even more complex. As Scott Hanselman recently said: “The less code you have to write, the more technical you have to be”. To create and manage software products, there is no substitute for a skilled dev team.
Closing thoughts
Through the ups and downs, I did enjoy my journey in vibe-coding. The wow moments were genuinely eye-opening; the fail moments were funnier than risky; and empowering business users to automate things will have clear benefits.
However, what works for simple tools will never work for mission-critical software. The best developers may have stopped writing code. The rest of us are just starting, but we are unlikely to take their jobs.
Reading list
“Spotify says its best developers don’t write code” — TechCrunch
“The AI-washing of job cuts is corrosive and confusing” — Bloomberg
“What is vibe coding, exactly?” — MIT Technology Review
"The less code you have to write, the more technical you have to be" — Scott Hanselman (LinkedIn)


