Vibe coding
- 5 minsAlright folks, let me talk about something I thought would be the future of coding but turned out to be more like… well, managing a very enthusiastic but slightly clueless intern. I’m talking about “vibe coding” with AI.
So, my wife needed a simple landing page for her website. Naturally, instead of doing things the normal way (you know, using one of those millions of templates on GitHub), I decided to see how far those fancy Agentic coding AIs have come. I was gonna “vibe code” it. Just, you know, go with the flow, see where the AI took me. Toy project, right? What could go wrong?
The grand vision
I had this grand vision: I’d just tell the AI, “Build me a website with X, Y and Z!” and poof! Magic. A beautiful, responsive, client-side masterpiece would appear. I even had a simple design in mind: straightforward layout, monotone colors, nothing too fancy. I figured, easy peasy.
After some “deep research” (aka scrolling through AI hype videos), I settled on NextJS with TailwindCSS. Popular, well-documented, the AI should eat it up, right? Grabbed a default NextJS template, because, hey, a good starter is half the battle. This was gonna be my million-dollar landing page template project after all!
Then came the reality check. Turns out, all those AI influencers aren’t entirely truthful. Shocker, right? You can’t just ask an AI to “build a NextJS app” and expect it to do it. While this was disappointing, I felt a bit relieved that software engineers aren’t redundant just yet. Our jobs might just shift from reviewing awful code from a co-worker to reviewing awful code from a friendly AI. Progress? I guess?
From Senior Engineer to… Intern Manager?
Okay, so the “build me a website” approach was a bust. Time for a new strategy. I let the AI whip up a fancy PRD (Product Requirements Document) and an implementation plan (who needs PMs, right?). Looked good on paper, I’ll give it that. But the actual website it churned out? Let’s just say it was… creatively interpreted. Turns out, my AI intern is a bit of a rebel. If I left any wiggle room in my instructions, it took off running in its own direction. It did something, bless its little silicon heart, but it definitely wasn’t what I envisioned. I was scratching my head, like, “What am I missing here?” So, obviously, I did what any self-respecting coder would do: I dove into the dark corners of vibe coding subreddits. And lo and behold, the wisdom of the internet revealed the sad truth: you gotta tell this AI everything. Like, down to the pixel level, if you really need control. Apparently, “build a website” is just way too vague for my over-enthusiastic but slightly clueless intern.
So, I changed tactics. Instead of treating the AI like a senior engineer, I started treating it like a junior engineer. A very junior engineer. One who needs very specific instructions. I went from high-level requests to super detailed, step-by-step instructions.
My prompts started looking like: “Create a common placeholder component for all pages: header, main, and footer.” Then, “Now, in the header, there should be a text with <h1>
that acts as the title and a navbar that is laid out horizontally (centered horizontally).” Basically, I was shouting at my intern every single detail. Surprisingly, this worked! Once I started micromanaging (I mean, guiding) the AI, things started to look better. I actually started making faster progress than I would have otherwise. I realized where AI does accelerate development: only when you tell it exactly what to do.
It’s not the autonomous, magic website builder I dreamed of yet, but it’s a pretty darn good intern. And, you know what? I’m convinced we’re all going to be doing 10x what we’re doing now with AI-assisted coding. Until, of course, we get that fully autonomic AI that makes us all irrelevant.
We aren’t there yet, but…
So, here are some of my key takeaways:
- Lower your expectations. We aren’t at “just tell the AI what to do” level yet, but we’re getting there.
- Use AI as an augmentation (like a spell checker), not as a full-blown SWE (yet).
- Give up some control. AI is surprisingly good at some things, let it vibe with you.
- Good tests and docs help the AI fix issues on its own, and helps you make sense of the mess.
- A good starter template, a popular tech stack, and a familiar programming language is crucial.
- Trust your AI, but verify what it produces. It’s very easy to go down the wrong path.
- As an engineer, working on obscure things (FORTRAN, anyone?) probably has better job security than knowing the new flashy Javascript framework.
- Product thinking for engineers will be more valuable than coding as you’ll start to solve problems in more abstract ways. We’ve all got maybe 5 years before things change drastically.
- And… maybe farming is a better career choice if you’re starting today. Just saying.
In the end, vibe coding turned out to be more like vibe-managing. But hey, my intern (the AI) got the job done. And I learned a thing or two about the current state of AI coding. Not quite magic, but definitely… interesting.
Oh, by the way, here is the result: “pesto”, a website template that’s vibe coded with ♥️.
What do you think? Shoot me an email with your thoughts!