Published March 2025
People call it "vibe coding" when you let Copilot or Cursor shotgun code into your editor and mash accept. That criticism only sticks if you also choose not to read what landed in git diff. The moment you pause, check the generated code in the repo, and gate it like any other pull request, you are still practicing deliberate engineering—you just outsourced the boilerplate typing.
Here's the Andrej Karpathy post that minted the phrase:
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists... It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
— Andrej Karpathy (@karpathy) View on X
Letting AI handle the first draft removes the grunt work, but reviewing the diff keeps you honest. The diff is where bugs surface, where naming and architecture problems are visible, and where you decide whether to keep or bin the suggestion. Accepting code after that review is no different from merging a teammate's patch: the authorship changed, not the standard.
There's another hidden review loop: tools like GitHub Desktop or GitHub Copilot can auto-generate commit messages. When you let them summarize the change, you instantly see whether the diff tells a coherent story. If the generated summary is wrong, you probably missed a logical wrinkle in the code itself. It's a second pass, because now both the code and the prose description need to make sense.
git status or your IDE diff view.That workflow gives you the best of both worlds: speed from AI drafting plus rigor from human review, with an extra safety net provided by AI summaries of your commits. That's not vibe coding. That's just modern software development.