Using AI

What is vibe coding? Meaning, tools, method and limits

Vibe coding means describing a program in natural language and letting an AI write the code. I have shipped real tools this way and thrown others away: here is what vibe coding means, the tools, how to get started and where the line between the two falls.

Anthony Courtin 20 min read Updated

AI summary

Vibe coding means describing in natural language what a program should do and letting an AI write the code, which is judged by how it behaves. The term comes from Andrej Karpathy, in February 2025. The tools fall into agents (Claude Code, Codex), AI-powered editors (Cursor, Copilot) and platforms (Lovable, Bolt.new). The practice suits internal tools with no sensitive data.

Summary written from the article.

Abstract illustration of ribbons of light crystallizing into blocks, an image of vibe coding

Vibe coding is a way of programming where you describe in natural language what a piece of software should do, and an AI writes the code for you: you judge the result by using it rather than by reading the code. The term was coined by Andrej Karpathy, OpenAI co-founder, in a post published on X on February 2, 2025, and the Collins dictionary made it its word of the year for 2025.

It has become a credible way to build tools, provided you know exactly where it stops. I have shipped real tools this way, and thrown others away after three weeks. Here is the meaning of vibe coding, the vibe coding tools and their prices, how to get started, a real example and the limits.

2,000 lines: the wall

What vibe coding is really worth

Remarkably effective for small internal tools. Quickly dangerous once there are users, personal data or a long lifespan.

  • A useful internal tool shipped in one evening
  • Access to programming without years of learning
  • A prototype that replaces twenty pages of specifications
  • Invisible debt, until something breaks
  • Security holes you cannot see if you cannot read code

Excellent up to the prototype Risky in production without a code review

Key takeaways

  • Vibe coding means describing a program in natural language and letting an AI write it. The term comes from Andrej Karpathy, in February 2025.
  • Describing replaces writing, but judging remains essential: you no longer read the code, you test the behavior.
  • Three families of tools: agents (Claude Code, Codex), AI-powered editors (Cursor, GitHub Copilot), all-in-one platforms (Lovable, Bolt.new).
  • The best projects are internal, disposable and free of sensitive data. In my projects, the breaking point comes at around one or two thousand lines.
  • Ask for tests from day one. It is the only safety net that lets you pick a project back up three months later.

Before you dive in, assess your project. Four questions are enough to tell whether you are on the right ground.

Interactive tool Is your project a good candidate?
4 / 20exposure level
Verdict and guardrails
Get it built properly
Calculated locally, nothing is sent. Scoring grid from my own projects, Anthony Courtin

What is vibe coding? Meaning and origin

It is a way of programming where you describe the intent rather than the implementation. You do not type loops or conditions: you say "I want a tool that takes an orders file, spots the duplicates and gives me a clean table", and a model produces the matching program.

The difference from assisted autocomplete is not one of degree, it is one of kind. In a classic AI-assisted editor, you write code and the machine finishes your sentences. Here, you no longer necessarily read the code it produces: you run it, look at the result and correct it by rephrasing. The program becomes a black box again, judged on its behavior.

Where the term vibe coding comes from

The phrase comes from Andrej Karpathy, AI researcher, OpenAI co-founder and former head of AI at Tesla. On February 2, 2025, he described on X a new way of coding where he gives in to "the vibes" and forgets the code even exists: he talks to his tool, accepts changes without reading them and pastes error messages until it works. The tone is half serious, half ironic, and that is precisely what made the word spread.

Within a few months, the developer joke had become a working practice, because the quality of generated code had crossed a threshold. Merriam-Webster added it to its list of trending expressions as early as March 2025, and the Collins dictionary named it word of the year for 2025. Even in French, the English term has been adopted as is.

What it is not

Three misconceptions come up all the time, and clearing them up avoids a lot of disappointment.

It is not no-code. A no-code platform locks you into a catalog of ready-made blocks: you assemble what the vendor planned for. Here there is no catalog, there is a real program, in a real language, that you can host wherever you like. The freedom is total, and so is the responsibility.

It is not the end of programming. The code still exists, it still runs on a server, it can still crash at three in the morning. What changes is who writes it, not whether it exists.

It is not magic. A model produces a program that matches what you said, not what you meant. The gap between the two is exactly the one that has always separated a specification from successful software. It has not disappeared, it has moved.

How does vibe coding work?

The loop has four steps, and it repeats dozens of times per session.

  1. You describe. In English or any other language: what the program should do, with which inputs and which outputs. The more precise the description of the expected result, the fewer back-and-forths you will need.
  2. The model produces. It writes the files, installs the necessary dependencies, and often runs the program itself to check that it starts.
  3. You test. Not by reading the code, by using it. You feed it a real file, click the real buttons, and check whether the result is what you expected.
  4. You correct by describing. "The table is not sorted in the right order", "it crashes when the file is empty", "add a column with the date". The model rereads its own code and fixes it.

This cycle is the heart of the practice, and it is where success or failure is decided. A user who tests seriously, with real cases and real messy data, gets a solid tool. A user who only tests the ideal case gets a tool that breaks on the first malformed file.

Why it only works now

Three developments have come together. Models write far more accurate code than two years ago. They handle much longer contexts, so they keep an entire project in mind rather than an isolated file. And above all, they have become agents: they run commands, read error messages and fix things on their own, instead of just suggesting text. It is the same principle as an AI agent, applied to software development.

That third development is the real turning point. A model that sees its error and repairs it changes the nature of the work: you are no longer the middleman copying error messages, you are the client judging the result. Connected to your tools through an MCP server, it can even read your files, databases or exports without any copy-pasting.

Vibe coding tools

There are three families of vibe coding tools, and the choice depends mostly on where you are starting from.

Coding agents

These are the most powerful. They work directly in a folder on your machine, create and edit files, run commands, read errors. Claude Code, from Anthropic, and Codex, from OpenAI, belong to this category. I use Claude Code every day, and my tutorial to install Claude Code starts from scratch.

Their strength is autonomy: you can hand them a long task and let them run. Their weakness is the learning curve, which assumes you are comfortable with a terminal. For someone who has never opened a command line, it is not the first step.

AI-powered editors

A code editor with an assistant built in deeply: it sees the whole project, proposes changes across several files and applies them once you approve. Cursor and GitHub Copilot in agent mode are two well-known examples.

It is the right compromise if you want to keep an eye on what is happening. You see the files, you see the diffs before accepting them, and you can step in by hand when that is faster. It is the entry point I recommend to someone who already has some basics.

All-in-one platforms

You describe an app in a browser, and it is generated, hosted and put online without you ever seeing a file. Lovable, Bolt.new and Replit work this way. It is the most accessible route for a complete beginner, and the fastest way to show an idea to someone.

The price you pay is dependence: your app lives with a vendor, with its limits and its pricing. For a prototype or an internal tool, that is perfectly acceptable. For a product you plan to keep alive for years, the question of portability must be asked from day one.

Comparison of the main tools and their prices

Public prices in dollars, checked on October 7, 2026 on the vendors' pricing pages. They change often: check before you subscribe.

ToolFamilyBest forFreePaid
Claude Code (Anthropic)Coding agentPeople comfortable with a terminalNo, not included in Claude's Free planIncluded in Claude Pro, $20/month ($17 billed annually), and Max, from $100/month
Codex (OpenAI)Coding agentChatGPT usersYes, included in ChatGPT Free with limitsChatGPT Go $8/month, Plus $20/month, Pro from $100/month
CursorAI-powered editorPeople who already have some basicsYes (Hobby, limited agent requests)Individual $20/month
GitHub CopilotEditor extension with agent modeDevelopersYes (Free)Pro $10/month, Pro+ $39/month
LovableAll-in-one platformComplete beginnersYes, 5 credits per day (30 per month max)Pro and Business plans
Bolt.newAll-in-one platformComplete beginnersYesPro $25/month

For the details of Anthropic's agent plans and what they really cost in practice, see my article on Claude Code pricing.

Can you vibe code with ChatGPT?

Yes. ChatGPT's plain chat is enough for a small script: you describe, it writes, you copy the code and run it yourself. That is the handmade version, where you remain the middleman copying the errors. Codex, OpenAI's coding agent included in ChatGPT subscriptions, does the whole job: it edits the files, runs the program and fixes things on its own.

What is the best vibe coding tool?

There is no single one, there is a good starting point depending on your profile. Start with the most accessible and move up when you hit a wall. If you have never programmed, start with a platform, ship something, build confidence. If you know a little, pick an AI-powered editor. If you are already technical, a coding agent will give you a much higher ceiling.

Do not look for the perfect tool: they are all improving fast and look more and more alike. What makes the difference in the result is how you give instructions, not the brand.

What are the benefits of vibe coding?

Four gains, only one of which is truly obvious.

Speed. The obvious one. An internal tool that would have taken a week ships in an evening, at least on a small scope.

Accessibility. People who will never be programmers can build the tool they need. This is the deepest change, and it affects entire professions: marketing, accounting, logistics, everyone who used to hack together in a spreadsheet things that deserved a real program.

The prototype as a common language. Showing a working mockup replaces twenty pages of specifications that nobody reads the same way. On a team project, it speeds up decisions more than it speeds up development.

The freedom to try. The most underrated one. When an attempt costs two hours instead of two weeks, it becomes reasonable to try things that would never have been budgeted. Most lead nowhere, a few change a way of working. This cheapness of experimenting is what has changed my own way of working the most.

The limits of vibe coding

Here is the part enthusiastic articles leave out, and yet it is the one that decides your future headaches.

Invisible debt

Code you do not read is code whose quality you do not know. As long as the program works, the illusion holds. The day you need to change a behavior, add an edge case or understand why a number is wrong, the ignorance comes due all at once.

I have seen that moment several times, and it always looks like the same scenario: a tool that worked very well for two months becomes impossible to evolve, because nobody, neither you nor the model, knows anymore which part does what.

The two-thousand-line wall

In my projects, a threshold keeps coming back at around one to two thousand lines. Below it, the model keeps an overview and its fixes are surgical. Above it, it starts fixing one thing by breaking another, because it can no longer hold all the logic in mind.

This wall does not announce itself. It shows up through a specific symptom: you fix a problem, another one appears elsewhere, you fix that one, the first comes back. If you go around that loop three times, it is not a bad day, it is the signal that you need to split the project into smaller pieces or have a human review it.

Security

This is the point that should get the most attention and gets the least. A model produces code that works, not necessarily code that is safe. The classic mistakes, unvalidated data, secrets written in plain text, no control over who is allowed to do what, do not show up in use: the app works perfectly until the day someone takes an interest in it.

The rule I apply without exception: as soon as a tool is reachable from the internet or handles personal data, it goes before someone who can read code. That is not excessive caution, it is the bare minimum. The assessment tool at the top of the page tells you when that review becomes mandatory.

The almost-done trap

The last pitfall is psychological. These tools get you to eighty percent of the result very quickly, which gives you the feeling you are almost done. The remaining twenty percent, the edge cases, error handling, odd behaviors, actually take as long as the rest, if not longer.

This is not specific to this practice, it has always been the law of software development. But the speed of the start makes the disappointment harsher, and many projects stop exactly there.

Vibe coding for beginners: how to get started

Here is the path I recommend to someone who has never written a line of code.

Pick the right first project

The best starter project has four characteristics: it is useful to you personally, only you use it, it touches no sensitive data, and you can throw it away without consequences. A file converter, a personal dashboard, a tool that sorts your photos, a calculator for your line of work.

The worst starter project is one with users, money at stake or customer data. It is not a question of technical difficulty, it is a question of how much a mistake costs while you are learning.

The five rules that change everything

  • Describe the result, not the method. Say what the program must produce, not how you imagine it should go about it. You will be wrong about the how more often than it will.
  • One request at a time. Five changes requested together give you five approximate changes. A single one gives you a clean result you can validate.
  • Test with real, messy data. The file with accented characters, the empty row, the date in the wrong format. That is where the bugs hide.
  • Ask for automated tests from the start. These are small programs that check the main program does what it should. It is the only safety net that lets you pick a project back up three months later.
  • Keep the history. Use a version control tool, if only so you can roll back when a change breaks everything. The model can set it up for you in two minutes.

The first few days, in practice

Take a real need, not an exercise. Describe it in three sentences to the tool of your choice, let it produce a first version, and use it right away. Note what is wrong, ask for one fix at a time, repeat.

In one evening, you will have something that works. In one week, you will have understood that the hard part is not getting code produced, but knowing how to say what you want. That discovery is the real substance of the learning.

A vibe coding example, from need to tool

A real case is still the most telling. Here, in short, is how a tool I still use came together.

The need. Every month I received ranking exports from several clients, in different formats, and I spent an hour normalizing them before I could compare them. Work with no added value whatsoever, repeated twelve times a year.

The first instruction. Three sentences, no more: a program that reads every file in a folder, whatever its column format, brings them into a single table with date, keyword, position and domain, and writes the result to one file. The first version arrived in four minutes and worked on two files out of three.

The fixes. The third file used a semicolon as a separator and US-format dates. Two requests, two fixes, ten minutes. Then a case I had not anticipated: some rows had no position, because the keyword had dropped out of the rankings. I asked for them to be kept with an empty value rather than deleted, because a keyword disappearing is precisely the interesting piece of information.

The safety net. I asked for automated tests covering the three formats and the empty-row case. Five more minutes. Those tests are what allowed me, four months later, to add a fourth format without breaking anything.

The outcome. One hour of work in total, one hour saved every month since. And above all: I would never have written this program by hand, because the return on investment would never have justified it. That is exactly what I meant by the cheapness of experimenting.

Note what made this case a success: a tiny scope, no sensitive data, a single user, and tests requested before the project grew. The four criteria of the assessment tool, all met.

What it costs

The money side is known in advance: a subscription of $8 to $25 per month is enough to get started with most of the tools in the table, and several have a free plan to try. For regular individual use, a subscription is almost always better value than pay-as-you-go billing, and it makes spending predictable, which matters when you do not yet know how much you will use.

All-in-one platforms often charge for both generation and hosting. That is comfortable at first and becomes the cost to watch if the app grows, especially since moving elsewhere is not always simple.

The real cost lies elsewhere, and it is time. A productive two-hour session produces a tool; a session that starts off badly produces three hours of looping fixes and an abandoned project. The difference almost always comes down to how clear the initial description was, which is good news: it is the only parameter you fully control.

How to learn vibe coding

There is not much to learn in the academic sense, and a lot to practice. The skill is not about syntax, it is about three things.

Knowing how to specify. Break a fuzzy need down into precise behaviors, think about edge cases before they happen, say what the program should do when things go wrong. That is the analyst's job, and it has never been more useful. It is also what prompt engineering really covers: giving the right context matters more than finding the right wording.

Knowing how to judge. Recognize a wrong result, a suspicious behavior, an answer that is too good to be true. This comes from testing a lot, on your own data, with an obsession for the tricky case.

Understanding concepts, not syntax. You do not need to know how to write a loop. You do need to know what a database is, why a password is never stored in plain text, what an API key is and why it never goes into a web page. A dozen notions of this kind cover most of the serious mistakes.

So the best training is still a real project whose outcome matters to you. Theoretical courses on how to phrase instructions go stale within a few months; the ability to specify and to judge does not.

Vibe coding and jobs: what changes

This is the question that worries people, so I may as well answer it frankly.

The developer's job is not disappearing, it is moving up. Writing the first version of a program is losing value; designing an architecture that will hold, reviewing machine-generated code, guaranteeing security and arbitrating trade-offs are gaining it. The work is shifting from production to design and control.

Two profiles see their situation improve markedly. Experienced developers, whose judgment becomes the bottleneck and therefore the scarce resource. And domain experts who can now build their own tools without waiting in an IT queue: a financial controller who builds their own dashboard, a lawyer who automates document sorting.

The profile that is weakened is the junior developer confined to simple, repetitive tasks, exactly the ones these tools do best. The advice that follows is blunt but useful: do not build your value on producing code, build it on understanding systems and on the ability to make decisions.

Who owns the code it produces

The question comes up in every corporate training session I run, and it deserves a clear answer rather than a shrug.

Generated code belongs to you in principle, within the limits of the terms of use of the service you use. Check this before building a product on it, not after: read the service's ownership clause once, and archive it.

Two points call for more attention. Dependencies first: a model readily installs third-party libraries, each of which comes with its own license. Some impose conditions on commercial use. Ask for the list of dependencies and their licenses; the tool answers that question in seconds. Your data next: if you paste extracts of client files into a conversation, that content leaves your system. For professional use, this question is settled at the organization and contract level, not at the user level.

None of this is a blocker. But a company that discovers these issues after putting a tool into production always discovers them at the worst moment.

How I actually use it

I use it every day, and always within the same scope: internal tools, for me or for a client, that do not handle sensitive data and whose failure only costs a morning.

Real examples: a script that compares two crawl exports and gives me the URLs whose status has changed, a redirect file generator built from a spreadsheet, a small dashboard that aggregates rankings for several clients, the interactive tools you find in my articles. None of these programs would exist if I had had to write them by hand: they would never have been worth the time they would have cost.

What I do not do: a client's website, an app with user accounts, anything that touches a payment. Not on principle, but because I know I will not review the code seriously enough to put my name to it.

The line is there, and it is easy to remember: build anything whose failure only costs you. For everything else, use these tools to go fast, but have someone whose job it is review the work. When a tool needs to last, that is the scope of my AI automation engagements: tests, review and deployment to production included.

Frequently asked questions

What is vibe coding?

Vibe coding is a way of programming where you describe in natural language what a piece of software should do, and an AI writes the code. You no longer necessarily read the code it produces: you run it, look at the result and correct it by rephrasing. The program is judged by its behavior rather than by reading it.

Who coined the term vibe coding?

Andrej Karpathy, AI researcher and OpenAI co-founder, in a post published on X on February 2, 2025. He described a way of coding where he forgot the code even existed. The Collins dictionary named vibe coding its word of the year for 2025.

How does vibe coding work?

Through a four-step loop repeated dozens of times. You describe the expected result, the model produces the files and often runs the program itself, you test by using the tool rather than reading its code, then you correct it by describing what is wrong. The quality of the result depends above all on how seriously you test: real, messy data gives you a solid tool.

Which vibe coding tools should you use?

There are three families. Coding agents, such as Claude Code or Codex, are the most autonomous but assume you are comfortable with a terminal. AI-powered editors, such as Cursor or GitHub Copilot, offer the right middle ground. All-in-one platforms, such as Lovable or Bolt.new, generate and host the app without you ever seeing a file, at the cost of depending on the vendor.

Can you vibe code with ChatGPT?

Yes. ChatGPT's chat is enough for a small script that you copy and run yourself. To go further, Codex, OpenAI's coding agent included in ChatGPT subscriptions, edits the files, runs the program and fixes its own errors.

Can you vibe code without knowing how to code?

Yes, that is precisely what sets vibe coding apart: an all-in-one platform lets you produce a working tool without writing a single line. You do, however, need to describe the need precisely, test with real data and understand a few basic notions, such as why a password is never stored in plain text. As soon as the tool handles personal data or outside users, a review by a developer is a must.

What are the limits of vibe coding?

Three serious limits. Invisible debt, since code you do not read is code whose quality you do not know. A wall, which I see at around one to two thousand lines, beyond which the model fixes one thing by breaking another. And security: a model produces code that works, not necessarily code that is safe, and unvalidated data or secrets in plain text do not show up in everyday use.

Vibe coding for beginners: how do you get started?

Pick a project that is useful to you personally, that only you use, with no sensitive data and that you can throw away without consequences. Describe it in three sentences, let the tool produce a first version and use it right away. Then apply five rules: describe the result rather than the method, one request at a time, test with real and messy data, ask for automated tests from the start, and keep a version history.

Get it built properly

I design the custom tools that deserve to last, with the tests and code review that going into production requires.

See how I work →
Anthony Courtin

Written by

Anthony Courtin

SEO, GEO & AI automation consultant

I help SMBs and independent professionals with their visibility (Google, ChatGPT, Perplexity) and with the real-world use of AI at work. I work with companies on site to train teams and rethink processes. Everything I write here, I use in client work.

Reader reviews

Did this article help you? Say so, it helps the next readers.

Rate this article

Your rating

What readers say

No reviews yet.

Be the first to leave a review.