Stephan Miller

Vibe coding




What Is Vibe Coding?

I hate the term “vibe coding” but it’s what it’s being called, so here we are.

Vibe coding started as AI-assisted development with zero ceremony. You have an idea, fire up an AI coding assistant (Claude, Cursor, Qoder, whatever), and see what happens. No detailed specs upfront. No project management theater. Just “hey AI, build me a thing that does X” and then iterating until it works or you get distracted building something else.

But pure chaos doesn’t scale. My workflow evolved into something more structured: vibe code a quick prototype to explore the idea, eventually have that 2am breakthrough where everything clicks, throw the prototype away, break the application into discrete projects, then build each piece to bare MVP with AI in phases. Each feature becomes its own phase with simple markdown TODO files that any AI tool can understand. Commands and skills in simple markdown files coordinate everything.

It’s not agile. It’s not waterfall. It’s conversational programming where you treat AI like a pair programmer instead of a code completion tool. Some call it AI pair programming, LLM-powered coding, or prompt-driven development. The ecosystem includes everything from GitHub Copilot workflows to full-on AI code generation with tools like Cursor, Windsurf, Kiro, Jules, and Claude Code.

The interesting part isn’t the AI writing code—it’s learning which tools have which personalities, when to trust the agent’s intelligence, and how to build actual systems instead of demos. Sometimes it works brilliantly. Sometimes you end up with 15 projects and a GitHub activity graph that needs explaining.

These posts document the experiments, failures, and occasional successes of building real shit with AI assistance.

Blog posts in the vibe coding category