{"id":809,"date":"2026-07-12T14:06:07","date_gmt":"2026-07-12T21:06:07","guid":{"rendered":"https:\/\/hitchhikersguidetodesign.com\/book\/?p=809"},"modified":"2026-09-17T17:37:04","modified_gmt":"2026-09-18T00:37:04","slug":"vibe-coding","status":"publish","type":"post","link":"https:\/\/hitchhikersguidetodesign.com\/book\/vibe-coding\/","title":{"rendered":"56 \u2022 Vibe Coding"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Vibe Coding is a software development practice assisted by artificial intelligence (AI) where the developer describes the outcome through natural-language prompts, trusting that the system will figure out the rest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of carefully designing solutions, you prompt, generate, test, tweak, and repeat. The software begins to take shape quickly, features appear almost instantly, and progress feels effortless. It&#8217;s tempting to rely on results and follow-up prompts to guide changes whilst accepting AI-generated code without thorough review.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ORIGIN<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">The term <em>Vibe Coding<\/em> was coined by Andrej Karpathy in  February 2025 to describe a new style of development enabled by AI systems. In this approach, developers and designers rely on natural language prompts rather than writing detailed code themselves, effectively \u201cgiving in to the vibes\u201d and letting the system generate solutions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The appeal is obvious. Software can be created faster, with less technical friction, and by a much broader range of people. The barrier to entry drops, and the pace of experimentation increases dramatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, a defining characteristic of true vibe coding is that the creator often accepts solutions without fully understanding how they work. The process shifts from building with intention to steering through intuition. The system produces results, and the human guides it &#8211; sometimes without ever fully grasping what\u2019s underneath.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">WHEN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ve encountered Vibe Coding when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>You prompt more than you code<\/strong><br>Your primary programming language has become English.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AI writes most of the implementation<\/strong><br>You provide intent. The machine handles the mysterious middle bits.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Working code is accepted without understanding it<\/strong><br>It runs. Asking additional questions feels unnecessarily negative.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Debugging becomes more prompting<\/strong><br>You don&#8217;t investigate the bug. You paste the error message back into the chat.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Each fix creates another prompt<\/strong><br>The AI fixes problem A, introduces problems B and C, and receives another enthusiastic opportunity to help.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The architecture becomes increasingly mysterious<\/strong><br>The application has grown substantially. Your mental model of it has not.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>You hear: \u201cDon&#8217;t touch that file.\u201d<\/strong><br>Not because it&#8217;s carefully optimized. Because nobody knows what happens if you do.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">WHY<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vibe Coding is incredibly seductive. The following list describes some of the reasons why vibe coding is so seductive:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It feels incredibly productive<\/strong><br>Every prompt can produce visible progress. Buttons appear. APIs connect. Features materialize. <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It collapses time<\/strong><br>Tasks that previously required hours or days can sometimes be completed in minutes.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It lowers technical barriers<\/strong><br>People who couldn&#8217;t previously build software can now create functional prototypes and applications.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The feedback loop is immediate<\/strong><br>Describe. Generate. Run. Adjust. The distance between idea and implementation becomes tiny.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Results resemble the <a href=\"https:\/\/hitchhikersguidetodesign.com\/book\/iceberg-model\/\">Iceberg Model<\/a><\/strong><br>Once something behaves properly on the surface, it&#8217;s tempting to assume the underlying implementation is equally healthy.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Complexity remains invisible<\/strong><br>AI can generate hundreds of lines of code faster than a human can meaningfully inspect them.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">HOW<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The appearance of speed creates a trap: When the software appears to work, it&#8217;s easy to skip understanding, testing, and verification. Vibe Coding works best when it&#8217;s treated as a starting point, not a destination. Use the following guardrails to stay in control while vibe coding:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Get clear before you generate<\/strong><br>Define the problem, requirements, constraints, architecture, and expected behavior before asking AI to start producing solutions.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use AI to accelerate decisions, not replace them<\/strong><br>Let the system help implement an approach you&#8217;ve considered rather than allowing each generated response to determine the next decision.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Review before you trust<\/strong><br>Generated code should be inspected just like code written by another developer.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Understand the critical pieces<\/strong><br>Authentication, permissions, data handling, payments, security, persistence, and other high-risk areas deserve considerably more than <em>\u201cit seems to work.\u201d<\/em><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Test aggressively<\/strong><br><a href=\"https:\/\/hitchhikersguidetodesign.com\/book\/happy-path\/\">Happy paths<\/a> aren&#8217;t enough. Test edge cases, failure states, accessibility, security, performance, and integration with real systems.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Keep changes small<\/strong><br>Huge AI-generated changes make it difficult to understand what changed, why it changed, and which part caused the next problem.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Stop the doom loop<\/strong><br>If repeated prompts keep fixing one problem while creating others, stop generating. Understand the underlying issue before continuing.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Match rigor to risk<\/strong><br>Vibing through an exploratory prototype is very different from vibing through authentication for a production banking application.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">PRO TIP<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Know your goal and start with a well thought-out plan. Vibe-code ideas to adjust the journey. Remember that if you can\u2019t explain why it works, you\u2019re not done yet.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">EXAMPLES<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A designer creates a functional prototype in one afternoon and spends the following weeks trying to understand why it keeps breaking. <\/li>\n\n\n\n<li>A startup launches an AI-generated MVP that works until the original creator needs to modify something fundamental. <\/li>\n\n\n\n<li>A team repeatedly asks AI to fix bugs that were introduced by previous AI-generated fixes. <\/li>\n\n\n\n<li>An application works perfectly with sample data but collapses when exposed to real production conditions. <\/li>\n\n\n\n<li>A prototype gradually becomes production software even though nobody ever made the transition from experimental code to deliberate architecture. <\/li>\n\n\n\n<li>A developer asks AI to explain its own generated code because nobody on the team understands it anymore. Someone warns: \u201cDon&#8217;t touch that file. It works.\u201d<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">CONCLUSION<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vibe Coding represents a genuine shift in how software can be created. It dramatically lowers the barrier to entry, accelerates experimentation, and enables rapid progress in ways that were previously impossible. At the same time, it introduces a new kind of risk: the separation of building from understanding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The challenge is not to avoid vibe coding, but to recognize its limits.<\/strong> Used well, it is a powerful tool for exploration and momentum. Used blindly, it creates fragile systems built on assumptions rather than insight.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The vibe may get you to launch. Understanding is what keeps it running.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vibe Coding is a software development practice assisted by artificial intelligence (AI) where the developer describes the outcome through natural-language prompts, trusting that the system will figure out the rest.<\/p>\n<p>Instead of carefully designing solutions, you prompt, generate, test, tweak, and repeat. The software begins to take shape quickly, features appear almost instantly, and progress feels effortless. It&#8217;s tempting to rely on results and follow-up prompts to guide changes whilst accepting AI-generated code without thorough review.<\/p>\n","protected":false},"author":1,"featured_media":952,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[23],"tags":[174,53,39,172],"class_list":["post-809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-productivity-mirage","tag-development","tag-productivity","tag-ux","tag-vibe","entry","has-media","owp-thumbs-layout-horizontal","owp-btn-big","owp-tabs-layout-horizontal","has-no-thumbnails","has-product-nav"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-content\/uploads\/2026\/09\/56.jpg","_links":{"self":[{"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/posts\/809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/comments?post=809"}],"version-history":[{"count":4,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/posts\/809\/revisions"}],"predecessor-version":[{"id":1017,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/posts\/809\/revisions\/1017"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/media\/952"}],"wp:attachment":[{"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/media?parent=809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/categories?post=809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hitchhikersguidetodesign.com\/book\/wp-json\/wp\/v2\/tags?post=809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}