What’s Vibe Coding?

Vibe coding is a new term for an approach to software development that relies heavily on AI, particularly large language models (LLMs), to generate and refine code. The term was coined by AI researcher Andrej Karpathy in early 2025.

The core idea of vibe coding is to shift the focus from writing code line-by-line to a more conversational, high-level process. Instead of manually writing syntax, a programmer describes their goal in plain language, and the AI generates the code. The programmer then provides feedback and instructions to the AI to fix bugs or make changes.

How do you do it?

There are multiple tools and ways of doing vibe coding. We can put them into two categories:

IDE Assistants

These are the ones that help a developer do the work faster by offering auto-completion and Chat capabilities. For example, I use Visual Studio Code with the Copilot extensions and Roo Code.

These tools, in my opinion, are designed to act as a programming buddy that can analyse, add to and improve the code.

Best for:

  • Developers who prefer to stay within their IDE and have a highly visual, hands-on experience.
  • Tasks that require careful review of proposed changes and precise control over which edits are accepted.
  • Making coordinated changes across a small to medium number of files

CLI

The CLI experience is a bit different. Instead of using an IDE to make small iterative changes like “create a function that does this/that”, you take bolder steps forward. You instruct the AI to perform complex tasks as part of the design of a large application.

I have used aider, claude and gemini cli. I have the best results with Claude Code, but it could be because I have used it for longer, and I understand better how to use it.

Best for:

  • Developers who are comfortable and efficient in a terminal environment.
  • Complex, multi-step tasks that benefit from an AI agent's ability to plan and execute autonomously.
  • Scenarios where a deep, holistic understanding of a large codebase is required.
  • Automating development workflows and integrating AI into scripts.

My Experience

I’ve been using AI tools since they became available. While my primary focus is on infrastructure and DevOps, working extensively with tools like Terraform, Ansible, and Kubernetes, I also have solid development experience. For example, I created vals-operator and other utilities.

Until this week, I'd never completed a full development project using AI. What's more, I tackled it using Dart, a language I'd never used, to program for mobile, a device I had no prior experience with. On top of that, I have no design sense and am absolutely useless at creating UIs.

The App

We were in talks with a leading data brand about building a prototype mobile-first app to access their API and backend services. Our goal was to deliver a simple, effective solution that would allow users to view and acknowledge alerts when they’re away from their desktop.

The process of creating the prototype wasn’t too dissimilar to a conversation with a programming buddy. We discussed frameworks for mobile phone development and analysed the pros and cons of the available options.

Once the framework was selected (Flutter), we kicked off the development together. We provided the AI the information it needed to do the work, explaining how the API worked and examples of how to use it. From here, it was a matter of providing feedback and iterating versions until it looked like we intended.

Prototype

The prototype was done in one morning. That’s what Vibe Coding is all about. You can speed up development massively. You can have something to show and review within hours.

The next stage is slower. You start adding features, and you spend time testing and fixing bugs and polishing the user experience.

Vibe Coding helps you move fast. But building something solid still takes time.

AI gets you started. Your skills take it further.

What have I learnt?

When I first started with AI programming, I quickly realised there was a considerable learning curve. I found that each model and tool had its own set of quirks and unique requirements. Some systems demanded a far more precise approach, and I discovered that how I interacted with them played a crucial role in obtaining the most effective results.

I was shocked at how easy it was to add new features. It's never perfect; it often needs more than one prompt, but the time saving and the removal of tedious tasks is paramount. For example, when we asked Claude to implement "dark mode”, even though it made a few mistakes and had to be re-prompted, it was done within 5 minutes. Imagine doing the same manually, locating all the UI components and adding conditions for the colours.

It was not all rosy, though. Just a few things that AI tools did poorly, and we needed to address:

  • security: AI struggles with secure coding practices. It tends to hardcode sensitive credentials like passwords and API tokens, even when explicitly told to use environment variables. This is a serious concern, especially for production-ready apps.
  • duplication: If you care about clean code, you’ll spot duplication quickly. Thankfully, this isn’t a dealbreaker. Once the app is functional, you can ask the AI to refactor and clean things up. It’s surprisingly good at tidying code when prompted.
  • AI quality: not all AI tools are created equal. When we tried to do a similar project using Gemini, it got stuck and asked for help. Weirdly, it defined a variable called “tea”  and it kept spelling it as “ea” no matter how many times it was manually fixed
  • Focus: it also sometimes goes completely off piste and breaks core logic when it refactors.  Commit often and use branches in case you need to rollback

Are we seeing the future of development?

In my opinion, yes. AI is not going to replace your developers (just yet) or DevOps engineers. You still need their skills to make the right decisions and support the platform going forward. Where AI excels is in the speed of development.

While it's true that AI can revolutionise coding, the need for human oversight remains of the utmost importance. You can't just hand a project over to an AI and expect a perfect result; a developer's expertise is crucial for guiding the process and ensuring the final product is sound.

Even with AI's ability to generate code, a deep understanding of programming is still essential. It's not just about typing out a few lines; a developer must be able to read, understand, and debug the code the AI produces. Without this knowledge, it becomes almost impossible to give the AI proper instructions or to fix any issues that inevitably come up during development.

The job doesn't end when the application is "created." A developer's expertise is crucial for the entire product lifecycle. This includes deployment to servers, ensuring the application is stable and scalable, and providing ongoing support. AI can't manage server configurations or troubleshoot real-world issues that arise from user behaviour or external factors. Ultimately, the developer remains responsible for the health, security, and maintenance of the application long after the initial code is written.

Programming is a lot more than writing code. Programming is about imagination, about exploring what’s possible and what’s not. And it’s important to remember applications seldom run unaccompanied. You’ll need databases, data storage, integration with other applications, search engines, networking, security…

Would you trust AI to choose a database backend for your project? I wouldn’t. It’s a complex decision with lots of ramifications that only years of experience in the sector can properly assess and navigate. An experienced developer knows that this is not just a technical choice; it's a strategic decision that will have a profound impact on the project's performance, scalability, and long-term viability.

What’s next?

A lot more coding! Suddenly, all those projects locked in my very long TODO list for lack of time have been unlocked. I can now kick them off in my spare time and get the AI tools to kick them off. Another interesting part I haven’t mentioned until now is that coding with AI agents it’s not a full-time job. I often prompt the AI for something I want it to do, and I go away to do something else in the meantime (like writing the blog…).

It’s amazing how much it has changed our Digitalis.IO team. Everyone is excited about it and doing lots of coding. In the last few weeks, I’ve seen great little projects taking shape that are benefiting our customer base and us.

Do you have a project for us? Contact our team for a free consultation to discuss how we can tailor our approach to your specific needs and challenges.

I, for one, welcome our new robot overlords

Subscribe to newsletter

Subscribe to receive the latest blog posts to your inbox every week.

By subscribing you agree to with our Privacy Policy.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Ready to Transform 

Your Business?