Skip to content

How To Get The Most Out Of Vibe Coding | Startup School

AI coding tools have reached a tipping point—they're now essential for developers and founders. Learn proven techniques to maximize their potential: start with comprehensive planning, use version control religiously, write integration tests, and choose established tech stacks for optimal...

Table of Contents

Artificial intelligence coding tools have reached a tipping point where they're not just useful—they're becoming essential for developers, founders, and anyone building digital products. What started as an experimental curiosity has evolved into a practice you can measurably improve at through the right techniques and best practices.

Key Takeaways

  • Start with comprehensive planning before writing any code, working section by section rather than attempting to build entire products in one go
  • Use version control religiously and reset frequently to avoid accumulating layers of problematic code when AI solutions don't work
  • Write high-level integration tests before moving to new features to catch regressions when AI makes unnecessary changes to unrelated logic
  • Choose established tech stacks with abundant training data like Ruby on Rails for better AI performance compared to newer languages
  • Experiment continuously with different models and tools as the state-of-the-art changes weekly, with different AI systems excelling at different tasks

Choosing Your AI Coding Tools

For Complete Beginners

If you've never written code before, start with tools like Replet or Lovable. These platforms provide easy-to-use visual interfaces that make trying out new UIs directly in code remarkably straightforward. Product managers and designers are increasingly skipping Figma mockups entirely, jumping straight to code implementation because it's so much faster.

However, these beginner-friendly tools have limitations. While they excel at UI creation, they struggle with precise backend logic modifications. Making a simple button change can inexplicably alter backend functionality in unpredictable ways.

For Experienced Developers

If you have coding experience—even if you're rusty—jump straight to tools like Windsurf, Cursor, or Claude Code. These platforms offer more control and better handle complex backend logic alongside frontend modifications.

Some founders are using multiple tools simultaneously. Load up both Cursor and Windsurf on the same project: Cursor works faster for frontend and full-stack connections, while Windsurf takes longer to think but often provides more thoughtful solutions. You can even run both tools with the same context and compare their different iterations of the same feature.

The Foundation: Planning and Architecture

Start with Comprehensive Planning

The biggest mistake developers make is diving straight into code. Instead, work with your chosen AI to create a comprehensive plan first. Put this plan in a markdown file inside your project folder and refer back to it constantly.

This isn't a plan you create once and forget—it's a living document you develop with the AI and step through during implementation. After creating the first draft, edit ruthlessly. Delete features you don't like, mark complex items as "won't do," and maintain a section for future ideas that are currently out of scope.

Implement Section by Section

Work with your AI to implement the plan piece by piece. Explicitly state which section you're working on: "Let's just do section two right now." After each section, check that it works, run your tests, and commit your changes. Then have the AI mark that section as complete in your plan.

Don't expect current models to successfully build entire products in one attempt, especially complex ones. The incremental approach ensures you always have a working implementation of each step. This advice may change rapidly as models improve, but for now, the methodical approach wins.

Think of AI as a New Programming Language

Think of the AI as a different kind of programming language and vibe coding as being a different type of programming language. Instead of programming with code, you're programming with language.

This mindset shift is crucial. Because you're programming with language, you must provide detailed context and information to get quality results. Spend significant time in a pure LLM environment building out scope and architecture before moving to coding tools. Understand exactly what you're building before letting AI tools run free in your codebase.

Version Control and Code Management

Use Git Religiously

Version control is your safety net when working with AI coding tools. While these tools have built-in revert functionality, don't trust them completely. Always start with a clean git state before beginning new features so you can revert to a known working version when AI inevitably goes off track.

Don't hesitate to use git reset --hard when things aren't working. If you find yourself prompting the AI multiple times trying to fix something, you're likely accumulating layers of problematic code. The AI tends to add complexity rather than understanding root causes.

Reset and Start Fresh

When you finally find a solution after multiple failed attempts, don't keep the messy code. Reset your changes and feed the working solution to the AI on a clean codebase. This approach gives you the clean implementation without accumulated technical debt.

Monitor whether your AI is falling into rabbit holes. If it keeps regenerating code that looks problematic, or you're constantly copy-pasting error messages, something has gone wrong. Step back and prompt the AI to examine why it's failing—often it's due to insufficient context rather than an impossible request.

Testing and Quality Control

Start with Test Cases

Some developers recommend starting with test cases before writing any implementation code. Hand-craft your test cases without using AI—these become guard rails that your AI must follow when generating code. Once you see green test results, the job is done without micromanaging the codebase.

Focus on High-Level Integration Tests

While AI tools default to writing low-level unit tests, high-level integration tests prove more valuable. These tests simulate real user interactions—someone clicking through your site or app—and ensure features work end-to-end.

Integration tests catch a common AI problem: making unnecessary changes to unrelated logic. You'll ask it to fix one thing, and it randomly modifies something completely different. Having comprehensive test suites catches these regressions early, allowing you to reset and start again before problems compound.

Test Before Moving Forward

Write tests or have your AI write them before moving to the next feature. This discipline prevents the accumulation of broken functionality and gives you confidence when refactoring later.

Advanced Techniques and Best Practices

Debugging with AI

When encountering bugs, copy-paste error messages directly into your AI tool. Whether from server logs or browser JavaScript consoles, these error messages often provide enough information for AI to identify and fix problems without additional explanation.

For complex bugs, ask your AI to think through three or four possible causes before writing code. After each failed fix attempt, reset and start again to avoid accumulating problematic solutions. Add logging liberally when debugging—it's your friend when things go wrong.

Switch Models When Stuck

If one AI model isn't working, try others. Different models excel at different tasks—some are better at debugging, others at long-term planning or feature implementation. Currently, Gemini performs well for whole codebase indexing and implementation planning, while Claude Sonnet 3.7 leads in actually implementing code changes.

Documentation and Instructions

Create detailed instruction files for your AI tools. Whether using Cursor rules, Windsurf rules, or Claude markdown files, comprehensive instructions dramatically improve effectiveness. Some founders write hundreds of lines of instructions for their AI coding agents.

Download API documentation locally rather than relying on AI to access online docs. Put documentation in a subdirectory of your project folder and instruct your AI to read the docs before implementation. This approach proves more accurate than online documentation access.

Tech Stack and Architecture Considerations

Choose Established Frameworks

AI performs exceptionally well with mature frameworks that have established conventions. Ruby on Rails, being a 20-year-old framework, provides consistent, high-quality training data. Rails codebases look similar, and there's typically one "right" way to achieve specific outcomes.

Developers report less success with newer languages like Rust or Elixir where training data is scarcer. However, this landscape changes rapidly as more code gets written and shared online.

Embrace Modular Architecture

Small files and modularity benefit both human developers and AI tools. Consider service-based architectures with clear API boundaries rather than massive monolithic repositories with complex interdependencies.

When AI can work within consistent external interfaces, you can modify internals freely as long as external APIs and tests continue passing. This architectural approach reduces the risk of changes in one area unexpectedly affecting another.

Complex Features and Reference Implementations

For complex functionality beyond normal AI trust levels, build standalone implementations in clean codebases first. Get reference implementations working without the complications of your existing project, or download existing implementations from GitHub.

Point your AI at the working implementation and have it follow that pattern when integrating into your larger codebase. This approach works surprisingly well for complex features.

Modern Development Workflow

Beyond Code: AI as DevOps and Design Partner

AI tools excel at non-coding tasks that traditionally slow down development. Use them to configure DNS servers, set up hosting via command-line tools, or handle other DevOps tasks that can accelerate progress significantly.

AI can serve as your designer too. Generate favicons and images, then have AI create scripts to resize them into the various formats needed across different platforms. This comprehensive assistance transforms AI from just a coding tool into a complete development partner.

Enhanced Input Methods

Screenshots prove invaluable for demonstrating UI bugs or pulling design inspiration from other sites. Most modern AI coding tools accept image inputs effectively.

Voice input tools like Aqua allow instruction input at 140 words per minute—double typical typing speed. AI tools are remarkably tolerant of grammar and punctuation mistakes in transcribed speech, making voice input practical for extended coding sessions.

Continuous Refactoring

Once code works and tests are implemented, refactor freely knowing your tests will catch regressions. Ask AI to identify repetitive code or good refactoring candidates. This mirrors professional development practices—avoid thousand-line files and maintain small, modular components that both humans and AI can understand easily.

Staying Current and Experimental

The AI coding landscape evolves weekly. Try every new model release to understand which performs better in different scenarios. Some models excel at debugging, others at planning or feature implementation or refactoring.

Current observations show Gemini leading in codebase indexing and planning, while Claude Sonnet 3.7 excels at implementation. GPT-4.1 shows promise but currently asks too many questions and makes implementation errors too frequently—though this will likely change rapidly.

Keep experimenting. It seems like the state-of-the-art changes week by week.

The most successful AI-assisted developers maintain an experimental mindset, continuously testing new tools and techniques. What works today may be obsolete next month, but the fundamental principles—planning, testing, version control, and iterative development—remain constant foundations for success in this rapidly evolving field.

Latest

New Grad to Principal Engineer (IC8) at Meta (Career Story)

New Grad to Principal Engineer (IC8) at Meta (Career Story)

Reaching Principal Engineer (IC8) at Meta takes more than technical skill. Adrian shares his non-linear journey from PhD to driving product at Meta. Learn why agency beats permission and how to manufacture your own luck to accelerate your engineering career growth.

Members Public
The Best Relationship Advice You Will Ever Receive

The Best Relationship Advice You Will Ever Receive

We demand passion and deep connection, yet often approach these "filet mignon" ideals with "hamburger" skills. Discover why modern love requires a new set of tools and how overcoming friction is actually the gateway to the true intimacy we crave.

Members Public