AI and vibe coding: what it is and how not to use it

Writing code with artificial intelligence

Is vibe coding everywhere? Not for us, and in this article we discover which safer alternatives you could consider to bring AI and development together. Vibe coding is a term coined in February 2025 by Tesla’s former AI director, Andrej Karpathy. In a nutshell, it means using artificial intelligence (LLM) software to generate software from scratch. You write a detailed prompt with the features that the website or app should have, and the AI will create everything you need, ready to use in no time (hopefully). For academic definitions, there is Wikipedia, so let’s move on to more constructive reflections.

You should know that while part of the world is going crazy over this supposed global revolution, we prefer a more cautious approach. Over the years, we have seen many technological flops, and the outcome of AI is still ambiguous. If you want a glimpse into our approach to the topic, you can read our article Is artificial intelligence a bubble? and the one where we talk about What are the problems of AI.

Writing good code takes time, a lot of study, skill, and a good dose of patience. It’s a complex task, as all developers know. As Jason Lemkin’s story involving Replit teaches us, relying too heavily on AI for development can have catastrophic consequences, and vibe coding is one of the riskiest activities in this regard. In fact, as fast and powerful as it is, AI is far from being as reliable as a senior developer. In fact, in some ways, it can be more reminiscent of the unpredictability and carelessness of an intern.

However, vibe coding is not completely out of the question. You need to know when to use it. For example, we have incorporated it into our company best practices, limiting it to a few specific use cases. Instead of letting AI become yet another unprepared intern left to their own devices on a big project—something we would never do—we prefer to compartmentalize and guide its contributions. Less AI hallucination, fewer errors, less damage.

Our best practices

Recently, we have equipped ourselves to study the subject more thoroughly. After some evaluation, we chose Claude Code from Anthropic, and our senior developer Yusuf Kandemir compiled a company guide to guide the rest of the team’s activities.

Yusuf has identified four categories that define what to do and what not to do when development and AI intersect:

  • Basic golden rules for interacting with AI
  • Use cases where AI is very useful
  • Activities to be handled with caution
  • Scenarios to be avoided at all costs

Our manual is full of additional details, but I wouldn’t be able to summarize them all in a single article, so I have limited myself to reporting the key points that make up each of the four categories. But let’s move on to Yusuf’s advice.

Basic golden rules for interfacing with AI in development

Before generating code, it is also important to know how to generate it and how to validate it. How to make requests to the AI and how to verify that everything is ok.

  • Stay up to date to recognize obsolete code concepts
  • Break down complex problems
  • Provide clear context
  • Create a project instruction file for the AI to read
  • Always check and test the outputs
  • Submit your prompts to multiple iterations
  • Take advantage of automated tools and linters
Use cases where AI is very useful for writing code
  • Generate code snippets
  • Explaining complex or legacy code
  • Create scripts and automations
  • Generate test data and simulations
  • Create disposable prototypes on the fly to validate ideas
  • Create low-impact, low-risk apps for internal use

As you may have noticed, the actual vibe coding only concerns the last two points.

AI development activities to be handled with caution

In the following activities related to code maintenance, user instructions, and interactions with other software, it is important to remain vigilant and pay particular attention to the contribution of AI.

  • Refactoring and code modernization
  • Debugging specific errors
  • Documentation generation
  • Interactions with APIs (especially niche, new, or internal ones)
Development scenarios with AI that should be avoided at all costs

The more the activities concern the foundations of a codebase or get critical, the more it is necessary to avoid AI. You understand that entrusting the “skeleton” of the entire structure to AI is very risky and, for this reason, vibe coding is not suitable for important projects (e.g., those involving privacy, security, money, and payments).

  • Doing a new project scaffolding
  • Writing code that is critical for cybersecurity and handles sensitive data
  • Making decisions about code architecture and design

Now that you know how to approach the subject, let’s also take a look at the technologies available for vibe coding and AI-assisted development.

Which AI tools to use for vibe coding

As for the best technologies to use, opinions vary. It is a sector that is still evolving, and the balance between the various players can change from month to month. Obviously, the world of coding is vast, and we will not specify which are the best compatibilities between LLMs and the various technologies for web development or other types of development. We leave the fun of exploration to you.

Let’s start with a chart shared by Siraj Raval, which I have redrawn here in the article for convenience. The technologies are divided by category to give a quick overview.

chart of AI tools for vibe coding divided into four categories

An overview of AI tools divided into the categories that best identifies them.

On Reddit, at the beginning of 2025, there was talk of Claude Sonnet, CoPilot, Cursor, Cline, Roo, Aider and Cody. In September of this year, according to Tech with Tim, the most useful AIs supporting development were:

According to LMArena, the three AI tools for web development with the highest ratings are currently GPT 5, Claude Opus 4.1 and Gemini 2.5 Pro. Take this rating with a grain of salt, because the site does not provide clear evaluation criteria. In fact, Pragmatic Coders has a different opinion. The Product Development Company provides a comprehensive analysis updated in July this year, where it compares 25 AI tools and selects the six best. The other tools outside the top six are a mix of promising technologies, others in development, and some that are best ignored.

  • Claude Code
  • Aider
  • Cursor
  • Windserf
  • Zed
  • GitHub Copilot

Overall, Claude and Cursor currently seem to be among the most frequently cited names, and it is no coincidence that we chose the former for our experiments.

Conclusions

We haven’t yet embarked on “pure” vibe coding at our company, but we are experimenting with the potential of assisted development to see how we can add AI to all the other classic integrations for IDEs (we use Visual Studio Code).

We are always looking for constructive dialogue. If you are interested in this topic and would like to discuss the best practices we have identified in more detail, please contact us. Let’s have a chat.