My Journey with Vibe Coding: Collaborating with AI
“Vibe coding,” as it’s come to be called, is about collaborating with AI development tools, letting them handle some of the architectural heavy lifting while you guide the overall direction and refine the implementation. It’s a dynamic process that blends natural language instruction with iterative adjustments. Here’s a look at my journey and some lessons learned along the way.
I remember first learning about it watching some YouTube videos; the host was prompting the LLM and it was just building the entire application from the ground up, and my mind was blown. I thought wow, this really looks like the future of coding.
The Journey: From Simple Games to Advanced Bots
My exploration into vibe coding started with relatively simple projects and gradually progressed:
-
Basic Matching Game: I began by building a simple web-based card matching game. This helped me understand the fundamentals of interacting with an AI coding assistant for front-end development. At this point, I was only using Open WebUI and had yet to learn about the wonder of IDEs with built-in AI assistance.
-
Basic Discord Bot (Python): Next, I tackled creating a basic Discord bot using Python. This introduced new challenges, like working with APIs and handling asynchronous events, all while leaning on AI for code generation and structure. This was done with the help of Github Copilot and Claude 3 Sonnet during the time when Copilot didn’t enforce limits on requests, which truly allowed me a massive learning opportunity at an affordable price.
-
More Advanced Discord Bot (TypeScript): Rather than simply adding to the first bot, I decided to rebuild it from the ground up using TypeScript to incorporate more complex features, including a search function. This project is where the collaborative aspect really shone. The AI initially suggested summarizing search results via an LLM, but I guided it towards my preferred output (hyperlinks, more detailed info) using natural language descriptions and incremental adjustments. Here is where I truly moved into using Roo Code and have been learning more about exciting features like MCPs and the Orchestrator (formerly Boomerang) mode.
Evolving Tools
My toolkit evolved alongside my projects:
-
Open WebUI: Started here, because I was already self-hosting it.
-
GitHub Copilot: Moved to an integrated code completion tool once I learned about the term vibe coding.
-
Roo Code (formerly Roo Cline): Settled on this tool, particularly leveraging its Orchestrator mode for more complex planning and execution, allowing easy pivots from the AI’s initial plan.
Key Lessons Learned
Through these projects, I picked up several key insights into effective vibe coding:
-
Clear, Natural Language Process: While you need well-defined, step-by-step directions in your prompts, frame them using natural language. The AI understands conversational instructions well.
-
Persistence Through Errors: Be prepared for some trial and error, especially when integrating different parts of a project or working with APIs. Sometimes, you might encounter the same error multiple times before finding the right prompt or adjustment – almost like a ‘brute force’ refinement process.
-
Embrace Simplicity (KISS): Don’t overcomplicate things unnecessarily. If the AI suggests a complex solution, evaluate if a simpler approach meets the core requirement. Avoid forcing overly elaborate implementations. This is really one of the most important aspects I have learned, as some LLMs tend to overcomplicate given the chance, so be sure to keep an eye on it.
-
Collaborate and Adjust: Let the AI propose designs and structures, but be ready to guide and adjust. Use the AI’s plan as a starting point. If the output isn’t quite right (like my initial bot search results), describe the desired changes clearly and iterate. Tools with features like Roo Code’s Orchestrator mode can make this adjustment process smoother.
Getting Started: A Beginner’s Vibe Coding Workflow (Example with Gemini & Roo Code)
Here’s a rough plan for how a beginner might start vibe coding using Google’s Gemini and the Roo Code VS Code extension:
-
Set Up AI Access: Create an account with your chosen AI provider. For this example, we’ll use Google AI Studio to get a Gemini API key. Google offers powerful models (like Gemini 2.5 Pro and Flash) with a potentially generous free tier to start.
-
Install VS Code: Download and install Visual Studio Code if you haven’t already.
-
Install Roo Code: Open VS Code, go to the Extensions marketplace (usually an icon on the left sidebar), search for “Roo Code”, and install it.
-
Integrate API Key: Configure Roo Code by adding your Gemini API key according to the extension’s instructions.
-
Project Setup:
-
Create a new folder (directory) on your computer for your project.
-
(Optional but Recommended): Initialize a Git repository (git init) and potentially link it to a GitHub repository. You can also ask the AI to guide you through this later.
-
-
Configure Roo Code:
- Inside your project folder, create a .roorules directory if needed for specific configurations (refer to Roo Code documentation). (Check out https://gist.github.com/ruvnet/b6cae644453de36403f991a0bfc61635 for a great rule set to start with).
-
Start Coding:
-
Set Roo Code to its “Orchestrator” mode (or a similar planning/execution mode).
-
Provide a high-level prompt describing the application you want to build. For example: “Architect a framework for a simple Python web server using Flask that serves a single HTML page. After designing the framework and saving it, build the application.”
-
Review the AI’s plan, provide feedback, and let it generate the initial code. Then, iterate by asking for features, refinements, or bug fixes.
-
This workflow allows the AI to handle the initial structure and boilerplate, freeing you up to focus on the unique logic and features of your application, guiding the AI as you go.
Conclusion
Embarking on vibe coding has been a fascinating experience. It’s shifted my perspective from analyzing code line by line to becoming more of a director, guiding an increasingly capable AI partner. While there are learning curves and occasional frustrations, the ability to rapidly prototype, learn new technologies, and build complex features collaboratively is incredibly powerful. If you’re curious about the evolving landscape of software development, I definitely recommend giving vibe coding a try – it might just change the way you build things.
- eoko