newsfilter.io
Tutorial, Other

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

  • Context & Thesis: Vibe coding is rapidly evolving from an experimental novelty into a disciplined practice comparable to professional software engineering, with measurable skill gains possible through iteration and adherence to established best practices.
  • Tool Selection & Strategy:
    • Newcomers: Beginners or non-coders are advised to start with visual interfaces like Replit or Lovable for rapid UI prototyping, though these tools may struggle with complex backend logic modifications.
    • Experienced Users: Those with prior coding knowledge should transition immediately to AI IDEs like Cursor, Windsurf, or Claude Code.
    • Dual-Workflow Technique: Users can run Cursor (for speed/frontend) and Windsurf (for deeper reasoning/backend) simultaneously on the same project, comparing outputs to select the best iteration.
    • Fallback Method: If an AI IDE enters a debugging loop, pasting code directly into the LLM's web UI often yields solutions the IDE could not reach.
  • Methodological Shifts:
    • Reverse Engineering: Successful practitioners often handcraft test cases first to create "strong guardrails," allowing the LLM to freely generate code within those boundaries.
    • Planning First: A comprehensive architectural plan should be drafted and stored in a markdown file before implementation, explicitly marking features as "won't do" or "later" to prevent scope creep.
    • Modular Implementation: Projects should be built section-by-section (e.g., "let's do section two"), with verification and Git commits after each step, rather than attempting to generate an entire product in one prompt.
  • Version Control & Error Management:
    • Git Discipline: Users must commit changes religiously and utilize git reset --hard to revert to a known working state when AI introduces "layers of cruft" or fails to identify root causes.
    • Bug Fixing Protocol: When encountering bugs, copy-paste error logs directly into the LLM; if a fix requires multiple attempts, reset the codebase and restart on a clean slate rather than accumulating patches.
    • Model Swapping: If a specific bug persists, switching models (e.g., from Sonnet 3.7 to OpenAI or Gemini) is a recommended troubleshooting step, as different models excel at different tasks.
  • Testing & Quality Assurance:
    • High-Level Integration Tests: Instead of unit tests, LLMs should be instructed to write high-level integration tests (simulating user clicks) to catch regressions in unrelated logic.
    • Refactoring: Once tests pass, frequent refactoring is encouraged to maintain modularity and file brevity, with AI assistance used to identify repetitive code for simplification.
  • Documentation & Context:
    • Local Docs: Due to inconsistent web scraping by agents, downloading API documentation to a local subdirectory and instructing the AI to read it before implementation significantly improves accuracy.
    • Rule Files: Writing extensive, hundreds-of-lines instruction files (e.g., Cursor rules, Windsurf rules) is essential for maximizing AI effectiveness and adherence to project-specific constraints.
    • Architectural Trends: A shift toward modular, service-based architectures with clear API boundaries is expected to outperform monolithic "mono-repos" which complicate LLM context windows.
  • Tech Stack Observations:
    • Training Data Bias: AI performance correlates with available training data; frameworks like Ruby on Rails yield superior results due to consistent conventions and abundant historical data, whereas languages like Rust or Elixir currently see lower success rates.
    • Model Performance (Current State): Gemini is identified as best for whole-codebase indexing and planning; Claude Sonnet 3.7 is currently the leading model for code implementation; GPT-4.1 is noted as less effective for immediate implementation tasks, often requiring excessive clarification.
  • Productivity Enhancements:
    • Voice Input: Tools like Aqua allow voice-to-text input at ~140 words per minute, enabling faster instruction delivery without perfect grammar.
    • Visual Inputs: Uploading screenshots to coding agents helps demonstrate UI bugs or provide design inspiration.
    • DevOps Automation: AI is effectively utilized for non-coding tasks, such as configuring DNS, setting up Heroku hosting, and resizing images/favicons.
  • Future Outlook: The "state of the art" changes weekly; YC partner Tom expects significant improvements in model capabilities over the next 2–3 months, potentially reducing the need for manual planning and step-by-step implementation.