Vibe Coding is the latest and most hyped thing in the developer (and even non-developer) world, but AI coding does NOT necessarily mean running on 'vibes', so let's look at how you, dear developer, can make use of these tools without shooting your own foot clean off.
In my last article comment section I mentioned to @themarkymark how I approach these tools:
I have been telling colleagues it is like having a smart but green intern. Give it explicit instructions and check its work thoroughly.
People think it is like self driving cars, where you can fall asleep, but it is more like real self driving where you have to supervise and keep your hands on the wheel.
Don’t expect the AI to build a whole complex application perfectly in one go. Working step-by-step, ensuring each part works, and saving regularly is much more reliable.
Tools for the Vibe Coder
Despite the risks, the potential for building things quickly using AI is undeniable. It’s possible we’ll see major businesses built primarily using this approach, building with tools designed for AI-assisted development.
I've not used all of the available tools because new ones come out all the time but some good examples of these tools are:
- OpenAI: Codex CLI
- Github: Copilot (Microsoft)
- Cursor: AI code editor based on VS
- Replit: Cloud-based + Teams
- Roo Code: Integrated into VS Code
Where I am skeptical are things like Lovable which are very much aimed at the 'no code' side and claim to build whole apps. I am not buying it:
Three Rules for AI-Assisted Coding Success
If you decide to embrace vibe coding and use AI tools heavily, following some key principles can help you avoid disaster and be more successful:
Choose a Popular and Simple Technology Stack:
Why? AI models learn from vast amounts of existing code found on websites like GitHub and Stack Overflow. They are generally better at solving problems and generating code for technologies that are widely used and well-documented.
Using common web development tools like Python, Django/Express (for server-side logic), Tailwind CSS (for styling), Redis (for caching or data storage), and perhaps NodeJS might yield better results from AI.
While popular choices are often safer, this rule isn’t absolute. Sometimes, slightly less common but well-structured frameworks (like Svelte, Vue.js, or Nuxt.js) can also work well with AI assistance if the AI has sufficient training data for them. The key is that the AI needs a strong base of examples to draw from.
Become Excellent with Git (Version Control):
When AI is modifying your codebase, it can sometimes make mistakes or even delete perfectly good, working code. Without a safety net, trying to prompt the AI to “undo” or recreate the lost code perfectly can be incredibly difficult or impossible.
Git lets you save snapshots (called “commits”) of your code at different points in time. If the AI messes things up, you can easily revert to a previous, working version. Being disciplined about saving changes frequently is crucial.
You can even use AI tools to manage the process if you forget the commands, and help write your commit messages, integrating AI into the safety process itself.
Shift Your Role: From Coder to AI Product Manager:
You are no longer just translating logic into code but guiding an incredibly powerful but non-thinking tool. Your primary job becomes managing the AI’s work.
Treat the AI like a very capable but literal-minded intern.
Break Down Tasks: Break the requirement down into very small, specific, manageable steps. Use the autocomplete and autocorrect functions, ask for a specific function specifying the inputs and outputs, etc, rather than vaguely request functionality.
Provide Context: Give the AI all the information it needs. This might include relevant documentation, examples of similar code, or even images if you’re working on user interfaces.
Make it “deterministic” - Aim for Predictability: You generally don’t want the AI to get “creative” and make assumptions. Give it clear, precise instructions with guard rails to ensure it produces the output you expect.
Document the spec and progress: These AI tools go off course, lose track, forget, and worse. As well as using the ability to roll back to a working version, also use their ability to document where you are aiming for and what you have already accomplished in spec and progress files.
Find the Right Balance
While AI tools offer productivity power, especially for quickly building prototypes or handling repetitive coding tasks, relying only on “vibes” is a risky strategy for building robust, secure, and maintainable applications.
Even Peter Levels’ successful flight simulator had numerous issues. His success might have depended heavily on his existing experience and large online following, not just the vibe-coded product itself.
Foundational programming knowledge is essential to guide the AI, review its output critically, fix problems, and ensure the final product is high quality.
By learning the right tools, and following careful practices (especially mastering Git) developers can make productivity gains but programming fundamentals and critical thinking are still vital if you want to produce anything reliable rather than just more AI slop.