I tried vibe coding a website
I spend most of my day dealing with data platforms—SQLs, Snowflake tables, Kafka incidents here and there.
Things that don’t really care if the button has rounded corners or not.
But recently, I started vibecoding a passion project (more info soon).
Not because I want to pivot into frontend engineering.
But because sometimes you want to test if all those blog posts about “LLMs can build apps for you” actually hold up.
Spoiler: it’s fun, chaotic, and full of lessons.
1. You need to teach LLMs (and be strict about it)
Left alone, an LLM will happily make decisions you didn’t ask for—like installing packages that don’t play well together.
So I wrote markdown instructions, basically parenting rules:
✅ use zod
✅ use nextauth
✅ use Postgres 17
❌ no hardcoding of credentials
The trick isn’t just telling the LLM what to do.
It’s also telling it what not to do.
2. Claude vs ChatGPT
Hot take: Claude feels like that coworker who can immediately find the right file in a 300-folder repo.
ChatGPT? Equally smart, but hallucinates faster and needs very specific instructions.
Claude: “The file you want is in utils/helpers.”
ChatGPT: “I couldn’t find it, so I created utils/helpers_v2_final_reallyfinal.js. Also, I rewrote your CSS.”
Both are brilliant. One is just… calmer.
3. Vibecoding stops at localhost
Your app works! 🎉
Except it only works at localhost:3000
, and no one else can see it.
That’s when you realize: vibecoding isn’t production.
You need to learn how to actually ship.
I went through articles, guides, and starter frameworks (like Next.js SaaS Starter) before settling on this stack:
- Domain: Namecheap
- Deployments: Vercel
- Database: Supabase
- Emails: Resend
I picked them because they’re easy to set up and well integrated with each other.
Now, I can escape localhost and ship an MVP in less time.
4. GenAI won’t replace us
People love debating whether LLMs will “replace developers.”
From my experience, success comes when I treat it as autocomplete on steroids, not a magical code-shipping machine.
It gets you 90% of the way.
The last 10%? That’s me double-checking it didn’t invent a new framework or drop my production database (I haven't yet).
The human-in-the-loop is non-negotiable.
Now what?
I finally understand the “high” when people brag about building a website in a day.
But I also see the gaps it creates.
Trying vibecoding gave me empathy for everyone experimenting with AI tools that promise to “just connect to Snowflake” and a magical data insight will appear.
It’s never just.
Remember, Garbage in Garbage out.
And lastly—the mess (or garbage), the gaps, the surprises—all of it is a reminder that GenAI isn’t quite the magic wand everyone promised.