Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

The uncomfortable truth about vibe coding

February 17, 2026
Todd Wardzinski
Related topics:
Artificial intelligenceDeveloper productivity
Related products:
Red Hat AI

    We're living through a strange moment in software development. Anyone with an internet connection and a credit card can spin up an AI coding assistant and start building applications. You describe what you want in plain English, hit enter, and watch code materialize on your screen.

    This is vibe coding—the practice of building software by conversing with AI rather than writing every line yourself. Andrej Karpathy coined the term earlier this year, and it's stuck because it captures something real about how millions of people are now approaching development. You describe the vibe, the AI handles the details.

    The tools have proliferated faster than anyone expected. Cursor, GitHub Copilot, Windsurf, Claude, and ChatGPT each promise to make software creation easier. And to be fair, they've delivered on that promise in ways that genuinely matter. People who never imagined themselves as developers are shipping real products. Ideas that would have died in the "someday I'll learn to code" graveyard are actually seeing the light of day.

    Here's the thing though: vibe coding is simultaneously the most exciting and most dangerous development practice to emerge in years. And understanding why requires getting past the hype and into the uncomfortable realities that emerge once the initial magic wears off. Let's not pretend vibe coding doesn't work. It absolutely does—for certain things. Need a quick prototype? A flashcard app? A landing page? You can go from idea to working code in minutes. One developer I read about recently built a functional flashcard app with editable cards, flip animations, and persistent storage using nothing but prompts. No semicolons typed, no debugging console logs—just conversation.

    I have brought five concepts to life and created three minimum viable products (MVPs) in just a few months. Projects that would have taken me quarters of dedicated evenings now take weekends. The speed is real, and dismissing it would be dishonest.

    The efficiency gains are undeniable when you're working on straightforward, self-contained projects. Natural language is how our brains actually work. We think in concepts and intentions, not in curly braces and type declarations. Vibe coding lets us stay in that headspace. You can focus on what you're trying to build rather than getting lost in the how of implementation details.

    Where it falls apart

    But then reality sets in. You're three months into your project. You've been chatting back and forth with your AI assistant, adding features, fixing bugs, making tweaks. Everything felt smooth until suddenly it didn't.

    You change one small thing and four other features break. You ask the AI to fix those, and now something else is acting weird. You're playing whack-a-mole with your own code base. One developer on Reddit described it perfectly: "AI is still just soooooo stupid and it will fix one thing but destroy 10 other things in your code."

    The Perils of Vibe Coding
    Figure 1: Putting a large prompt together and expecting AI to perfectly orchestrate is a recipe for disaster!  (Image generated by Nano Banana Pro.)

    This is not the AI being dumb. It's the natural consequence of building without specifications. When you vibe code, your instructions become obsolete the moment code is generated. The code itself becomes the only source of truth for what the software does—and code is terrible at explaining why it does what it does. The intent behind decisions gets lost. The mental model that made everything make sense fades. You're left with a code base that works (sort of) but that nobody, including the AI, fully understands anymore.

    This is why so many vibe-coded projects hit a wall around the three-month mark. The code base has grown beyond anyone's ability to hold it in their head. The AI's context window can only see fragments. You have no map to help you find your way back to a stable version.

    Specificity is king

    The developers having real success with AI coding tools aren't just vibing. They're specifying.

    Spec-driven development flips the relationship between instructions and code. Instead of treating your prompts as throwaway tasks, you treat your specifications as the authoritative blueprint—the single source of truth that the code must conform to. When something breaks, you don't dive into the code to fix it. You refine the spec and regenerate.

    This sounds like extra work, and initially it is. But consider what you gain. Your specifications become version-controlled documentation that actually stays current. You can collaborate with teammates at the spec level rather than arguing over code reviews. When you need to change something, you change it in one place rather than hunting through interconnected code paths hoping you don't break something else.

    Most importantly, you maintain control. The AI becomes a powerful executor of your clearly expressed intent rather than an unpredictable collaborator making decisions you don't understand.

    Spec-driven workflow
    Figure 2: Specifying what you want in via a task spec yields better results overall. Vibe coding still has a place, but with a smaller controlled scope. (Image generated by Nano Banana Pro.)

    Think about what a good specification actually does: it forces you to articulate what you want before you start building. Figure 2 denotes the differences between the two workflows. Spec-driven development makes you consider edge cases, define constraints, and think through the user experience. These aren't bureaucratic hurdles—they're the exact things that separate software that works from software that sort of works until it doesn't.

    The uncomfortable middle ground

    Here's what the enthusiasts don't want to admit: you still need to be technical. You still need to understand how software works: architecture, dependencies, constraints, trade-offs. A specification written by someone who doesn't understand these things isn't a workable blueprint; it's a wish list.

    The barrier to entry has lowered, but it hasn't disappeared. Vibe coding extends your reach; it doesn't replace your foundation. The developers getting ten times more productive aren't abandoning their expertise. They're using it in a new way.

    Think of it like the shift from assembly language to high-level languages decades ago. We lost detailed understanding of how machines work. But we still needed to be technical. We still needed to understand computers. The abstraction changed; the requirement for competence didn't.

    This creates an awkward reality for the "anyone can code now" narrative. Yes, anyone can generate code. But generating code and building sustainable software are not the same thing. The gap between a working demo and a production system remains vast, and AI doesn't bridge that gap automatically. It just makes the demo easier to reach.

    What actually works

    The most effective approach combines the efficiency of natural language with the rigor of explicit specifications. You can still vibe when exploring ideas or prototyping. But when you're building something that matters—something you'll need to maintain, debug, and extend—you need guardrails.

    Notice where vibe coding still has a home in the spec-driven workflow: at the unit level. If you can write a unit or functional test to validate the output, the scope is small enough to vibe. If you can't test it at that level, you need a spec. This is what keeps you out of the whack-a-mole trap: each piece is small enough to verify in isolation before it joins the larger system.

    Be specific about what you want. Be specific about how you want it done. Document your decisions. Define your constraints. Create acceptance tests that verify your specifications are actually implemented.

    This isn't just theory anymore. The industry is catching on, and real tools are emerging to bridge the gap between vibing and building:

    • Amazon's Kiro
    • GitHub's Spec Kit
    • Codeplain
    • Tessl

    Even GitHub's research arm explored this territory back in 2023 with SpecLang, an experimental project that used structured natural language to generate code. While it never shipped as a product, the ideas it pioneered are now showing up across the ecosystem.

    The common thread? All of these projects recognize that the freewheeling nature of vibe coding doesn't scale. At some point, you need structure. You need something that persists beyond the chat window.

    When you leave details unspecified, the AI fills in the gaps. Sometimes it fills them in brilliantly. Sometimes it fills them in differently every time you generate code, leading to what one researcher calls functionality flickering—that disorienting experience where your button is blue one day and green the next because you never specified which it should be.

    The solution isn't to abandon vibe coding entirely. It's to recognize when you've moved past the prototyping phase and need to shift into a more disciplined mode. Use the vibes to explore. Use specifications to build.

    The future is specific

    Vibe coding isn't going away. It's too useful, too accessible, too aligned with how humans naturally think. But the developers who thrive won't be the ones who vibe hardest. They'll be the ones who learned that specificity is king.

    The magic isn't in the vibes. It's in knowing exactly what you want and expressing it clearly enough that even an AI can't misinterpret it.

    That's harder than it sounds. But it's also the skill that separates sustainable software from digital sandcastles waiting for the next prompt to wash them away.

    Last updated: February 23, 2026

    Related Posts

    • How spec-driven development improves AI coding quality

    • Speculators: Standardized, production-ready speculative decoding

    • Making LLMs boring: From chatbots to semantic processors

    • Fly Eagle(3) fly: Faster inference with vLLM & speculative decoding

    • The state of open source AI models in 2025

    • The strategic choice: Making sense of LLM customization

    Recent Posts

    • Federated identity across the hybrid cloud using zero trust workload identity manager

    • Confidential virtual machine storage attack scenarios

    • Introducing virtualization platform autopilot

    • Integrate zero trust workload identity manager with Red Hat OpenShift GitOps

    • Best Practice Configuration and Tuning for Linux and Windows VMs

    What’s up next?

    applied ai for devs tile card

    Applied AI for Enterprise Java Development

    Alex Soto Bueno +2
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.