Pattern 1: Vibe Coding
Rapid Prototyping of Simple Tools
Overview
In February 2025, Andrej Karpathy coined the term “vibe coding”:
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 possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. 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.
In other words, vibe coding is using AI to code while only caring about the end product.
When you vibe code, you:
- Don’t care how the code looks. It doesn’t matter how anything is implemented.
- Accept whatever code changes AI makes, as long as the app looks and functions better.
All that matters in vibe coding is what happens when you run your app. Does it work or not?
The goal is a working prototype, not clean or lasting code.
Example: Rapid Prototyping
I use vibe coding for two kinds of prototyping: workflow automation and feature exploration.
Workflow Automation Tools
The cost of creating custom scripts has plummeted with AI. What used to require reading docs and debugging API calls now takes seconds. This changes the approach to personal productivity tools.
Before AI, I built a personal productivity library - clean, refactored code that was easy to extend.
With AI, I can build and manage dozens of tiny uv scripts with a Justfile, each doing one thing. Creating a new one takes seconds.
Just is a command runner, like Make but simpler. It gives you a simple way to organize lots of different commands into a single interface.
# Generate Twitter draft from URL or thoughts
just twitter-draft "my-blog-post-url.com"
# Process YouTube video into blog post
just yt-pipeline "youtube-video-id"
# Read GitHub issue in custom format
just gh-issue "repo-name" "123"Why build custom tools instead of using existing ones?
- Customization is instant: Your script only handles your specific use case. No edge cases, no complex config.
- Creation cost is near-zero: AI generates a working script in under 10 seconds. Installing and configuring a pre-built tool takes longer.
- Maintenance is trivial: Each script is self-contained. Change one without breaking others.
- General tools can be bloated: Many add features you don’t need, creating unnecessary complexity and overhead. For example, at the time of writing, GitHub MCP adds over 90 tools and about 55,000 tokens of context.
Feature Exploration
Vibe coding helps validate ideas before committing to a clean implementation. Start with a messy prototype, run it for a while, then rebuild properly once you understand what you actually need.
The process:
- Vibe-code a buggy prototype that is usable by you only
- Use it daily, making small fixes as you go
- Generate a requirements doc from the prototype
- Build the real version with AI, but now with clear intent
We will talk about how to rebuild the prototype properly (steps 3 and 4) with AI assistance later in this book.
Feel the Vibes
Vibe coding gets flak, often for good reason. But it can help you:
- Learn AI’s limits: See exactly where the model fails.
- Build tools instantly: Ideas become running scripts in minutes.
- Think in code: AI becomes your interactive whiteboard.
This process will feel wrong to experienced developers. The code will be messy. Indents will be off. Let it be.
If the page loads, you have a starting point. If not, you’ve only lost a few minutes.
The Rules
- Speed over perfection. Always.
- If it works, it ships. Period.
- Failure must be cheap. Cost minutes, not hours.
- Refactor only if necessary. Don’t fix code nobody touches.
Exercise: Build a Landing Page in 5 Minutes
Let’s vibe-code a landing page for PlantAutopsy - a service that analyzes photos of dead or dying plants to explain what went wrong and provide a full forensic report, helping owners learn from their mistakes.
The idea came from killing a plant without understanding why. PlantAutopsy gives you closure and helps you do better next time.
Step 1: Get the code
Open your AI agent of choice and voice-dictate something along the lines of this prompt:
Make a single-file `index.html` landing page for PlantAutopsy, a service that tells you why your plant died. Include:
- Hero section with tagline "Every dead plant has a story. Let's learn from it."
- Upload area for plant photos (just shows alert when clicked)
- Three service features (cause of death analysis, care mistakes report, prevention tips)
- Simple email signup for the waitlist
- Make it clean but slightly playful. Green colors but not too cheerful (plants died here).
Beginner hint (optional): if you want specific feature descriptions, add these:
Features:
1. "Forensic Analysis" - AI examines leaves, soil, roots for evidence
2. "Death Certificate" - Official cause of death with timeline
3. "Next Plant Recommendation" - Suggests harder-to-kill alternatives
Step 2: Save the Code
Copy the AI’s entire response. Save it as index.html. Don’t fix the formatting. Don’t lint it. Don’t even read it.
Step 3: Run the Code
Open the file in your browser. Do the links appear? You’re done.
Blank screen? Tell the AI “It’s a blank screen” and paste its fix. Repeat until it works.
Now, Your Turn
Solve a small problem. Vibe-code a trivial tool.
Some ideas from past projects:
- A script to download a YouTube video and transcribe it with
whisper - A tool that finds all TODO comments in a project and displays them to you
- An app that summarizes all PDFs in a folder with GPT-4o
- A one-page portfolio website
- A web page that renames image files based on their content
Think of a small problem. Write the simplest prompt that might work. Ship what the AI gives you.