Back to Articles
By Meghna Sinha

What do I (really) think of vibe coding?

Building on my last four-part essay on navigating the hype surrounding AGI and agentic AI, I want to share my take on vibe coding. I am concerned we're getting distracted again by terms like 'vibe coding,' 'AI-first,' and 'human-in-the-loop,' especially when people stretch them beyond their original context with statements like “you don’t need to learn to code” or when companies claim majority of their code is written by AI. In this post, I’ll double down on vibe coding and will revisit my thoughts on the other terms in a later posts.

Subscribe now

For context, I wrote about why I don't believe in AGI hype or in an agentic future built without proper model governance capabilities, responsible AI risk mitigation tools, systems thinking, or design that establishes evaluation criteria and testing standards. Deploying chatbots with unchecked agency is a recipe for disaster, as recent incidents like this week's tariff calculation errors demonstrate. This issue was highlighted in a post by Gary Marcus1 and Brian Merchant2 (links included below). AI in its current stage is insufficient to run human society because current models lack sufficient maturity, testing, and governance for widespread public use. Furthermore, our collective AI literacy is in its very early stages, meaning there's a high risk of misuse and exploitation without adequate accountability. With that context now let’s unpack vibe coding.

Vibe coding is a term used for coding with the assistance of AI, where you describe what you want to create using natural language, and an AI tool builds the application for you. Instead of writing code line by line, you provide instructions to an AI-powered coding platform, and the AI generates the code based on your prompt.

Examples of AI-powered coding platforms: Cursor, Replit and Codium are a few examples of AI-powered coding platforms that can be used for vibe coding.

I have two pieces of advice for the aspiring vibe coders:

Prioritize coding literacy: Consider why learning to code is still a valuable endeavor in the age of AI-assisted coding.

Plan for sustainable development: If you're working with unfamiliar AI-generated code, proactively seek ways to understand it, develop your application effectively, and build the expertise needed for ongoing maintenance and updates. Essentially, take complete ownership of not just the code, but also the experience this code delivers to the end user.

First, coding is a language to communicate with machines. If you think of it as just another language, why would you be so keen to abandon it after it only being in use for a few decades? There are both philosophical and practical arguments for coding continuing to exist as a valuable language to learn and apply. Languages have evolved over centuries, enabling us to understand the world and communicate across cultures. Every living species has some way of communicating with each other. If we envision machines with agency as part of our society, we're only seeing the first generation of their language—a language that allows us to design their future evolution.

If this all feels fuzzy, let me break it down more practically. Let's say you're using AI to write your code, and you don't understand any of it, but you can use the code to build an app or a chatbot that can perform a task for you. You decide to build more such single-function task apps. Now you have 25 custom apps that manage your schedule, take your notes, write your emails, white papers, decks, etc., plan your vacation, handle your bill payments, manage your calendar and whatever else you wish to delegate to these smart agents. How will you test information exchanges across these apps or agents? How will you ensure interoperability? How will you debug errors that occur concurrently or sequentially across these agents? I can keep going, but my point is that beyond a single-function app or agent, vibe coding is not going to get you far because these apps or agents are meant to interact with consumers in an environment with too many variables that you do not control. It's like you have learned to fly a small plane, but in order to be up in the air, you still need to understand and communicate with Air Traffic Control—a complex system with its own rules and language—to avoid potential harm.

I had similar sentiments about prompt engineering when the term first emerged in 2023. Prompt engineering is a glorified term for talking to chatbots. It used to be called communication skills back in the 90s when you would highlight that you have excellent communication skills in your resume, indicating that you knew how to effectively conduct management speak in a professional environment. Now you say you have excellent prompt engineering skills, but all you are saying is that you are great at talking to an AI chatbot. Just as communication skills did not, in itself, guarantee employment, prompt engineering or vibe coding is not going to land you a job; it is a tool that can help you go deeper or broader in areas you are good at or give you a chance to experiment in ways you couldn’t before. For example, if you are a great product manager, vibe coding enables you to prototype a solution faster. If you are a great analyst or a data scientist, vibe coding can help you quickly determine the best output format you need to produce for your models. If you are a business manager, vibe coding can help you look at vendor solutions with far more critical eyes when negotiating a contract. The real opportunity is, it extends your ability to think and work beyond your currently defined job scope.

Second, I'm actually an advocate for smart coding, whether it's done using AI models or other tools that speed up the coding process. I personally prefer relying on existing code on GitHub rather than starting from scratch. I only opt for a clean slate approach when the problem is so unique that it necessitates it. At my company, Kai Roses, we've benefited from using Cursor in our development work. These tools increase speed, efficiency, and can also aid fluency across coding languages. For example, we are primarily Python coders, but we are coding more and more in Java and JavaScript now. Prompt-based code iteration also offers a significant benefit: a technically proficient product manager can quickly develop the initial application prototype, eliminating initial handoffs between product and engineering. So, it's all good up to this point.

Developing an app for users in production is a very different ballgame. If you use tools like Cursor to build an app without learning to code from scratch, take the opportunity to learn how to develop it in a production environment, integrating with APIs, servers, and cloud hosting. Developing the app's architecture will deepen your understanding of the code, which is essential for debugging, especially with user-facing issues. User issues are tricky because they tend to be obscure and hard to retrace or recreate. You also need to develop and study how to test your app, a deep area requiring strong engineering and coding support that is still nascent in AI-based tools. Take advantage of these growth opportunities to expand your skills.

We are still in a very early stage in the development of technologies that are capable of interacting with us with some level of agency. Just as human society has benefited from the evolution of thousands of languages, we should remain open to learning and understanding the emerging "languages" of these technologies. Therefore, stay curious and don’t give up on keeping up with coding just yet. Code literacy will remain crucial in the coming decade, and this necessitates the ability to write code from scratch.

Meghna's Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.