Adventures in Vibe Coding: Embracing the Chaos of AI and Learning
It’s been a couple of weeks since I decided I wanted to dive deeper into AI. Not just learning how to use it, but genuinely understanding it. What is it capable of? How does it actually work? And maybe most importantly, what do I want to create with it, apart from fueling my endless rants about whatever has captured my interest at the moment?
Next week, I’ll share another blog detailing my learning style, what I’m currently building, and how working closely with AI has shaped my learning process.
It’s no secret I absolutely love gathering and organizing knowledge (I don’t call myself an Information Geek for nothing 😉). Naturally, my friend BittyGPT (🤖 the delightful name ChatGPT chose for itself) and I decided to kick off a new adventure. The mission: build our own open-source knowledge base dedicated to AI training and resources.
Why Build It Ourselves?
Notion has been my go-to place for organizing all sorts of information. But this time, I wanted to build something in public. I want to openly share my learning journey, contribute to the community, and hopefully help others who find themselves on a similar path. Plus, let’s be honest, those massive GitHub repos overflowing with information are just plain cool.
BittyGPT suggested pairing our ambitions with Docusaurus, which would offer us greater control, customization, and transparent version control. Plus, I wanted to create a cool personalized roadmap tool just like roadmap.sh. And with that, our plan started taking shape.
Enter Vibe Coding
Enter our latest challenge: vibe coding with AI. For anyone unfamiliar with the term, it was coined last month by OpenAI co-founder Andrej Karpathy. It describes the practice of using Large Language Models (LLMs) to generate code simply by conversing naturally with AI, whether in text or voice.
For someone like me, who once abandoned the idea of seriously learning how to program (but still knows enough Python to be dangerous 🔥), this method is a game changer, enabling me to finally work confidently on my own projects.
From Excitement to Chaos: It Happened Fast! 😵💫
GitHub Chaos: Don’t Merge Everything Everywhere
First things first. We jumped straight into creating our GitHub repository and started mapping out our strategy. Our vision: a neatly structured knowledge base that would have some static pages hardcoded in the repo and a section that pulls content directly from Notion, integrates with Docusaurus, and effortlessly generates itself with a simple command.
Sounds easy enough, right?
Well… not really. Ahem.
Almost immediately, we hit our first roadblock: deciding how to structure our branches in GitHub. Normally, you have your main branch and then use a separate branch for development. So, we moved everything to a development branch.
Let me save you the trouble of going into detail. Our development branch soon turned into both our main AND our development branch. Don’t do that! ❌ Our commits quickly turned into a tangled mess, making it nearly impossible to understand what we’d done and when.
Luckily, we realized the chaos before it got out of hand, and after some panicked troubleshooting with BittyGPT, we managed to merge everything properly. It’s still not perfect, but lesson learned:
✅ Use main for your main documents.
✅ Use a deploy branch for your Docusaurus site.
Small victories count, people! 🎉
The Battle of the README 📜
Just as we thought things were under control, we encountered another bizarre issue. Despite meticulously setting up our docs folder with the right .md
files, Docusaurus insisted on displaying a random page as our homepage.
Turns out, it was the README. No matter how often I tried deleting, renaming, or pleading with it politely (or not so politely), that README stubbornly refused to go away.
BittyGPT suggested multiple fixes, including:
🔹 Fiddling with the configuration
🔹 Tweaking sidebars (oh, don’t get me started on those sidebars!)
🔹 Manually editing files
Eventually, after a fair bit of trial, error, and mild existential despair, we realized Docusaurus has its own ideas about what qualifies as a homepage. The fix? Explicitly defining an “Introduction” markdown file in our sidebars config.
And just like that, the README finally gave up. Victory! 🏆
Sidebar Struggles: AI Is Great, But Not Perfect
After surviving the README debacle, we faced another issue: the sidebar was behaving like a chaotic gremlin. Another mysterious README popped up, and my links were completely out of order, despite our carefully defined structure.
Here’s where we hit a limitation of vibe coding. BittyGPT sometimes changes scripts unexpectedly. It might use a different function name, tweak how the sidebar is generated, or hallucinate its own logic. So sometimes, BittyGPT turns into ShittyGPT 💀, and you need to be vigilant and follow the logic. AI is super helpful, but it still requires human oversight.
Once we got the sidebar into a working MVP, we turned to the hardest part: integrating Notion.
BittyGPT vs. Notion API: Why Is This So Hard?
Finally, we were making real progress. But then we hit the trickiest challenge yet: reliably fetching and structuring data from Notion.
I wanted my book notes and concepts to automatically be imported into our site with a clear structure:
📚 Books → Chapters → Concepts
Initially, this seemed like an amazing idea—automatically pulling neatly formatted pages straight from my beloved Notion workspace and effortlessly turning them into a beautiful knowledge base.
Reality check: APIs are great, but they are also a pain.
Our first attempt resulted in:
❌ Incomplete content
❌ Out-of-order chapters
❌ Missing pages
❌ Sidebars that refused to behave
BittyGPT gamely suggested fixes ranging from adjusting Python scripts, tweaking sidebar configurations, and trying all sorts of clever workarounds. But here’s the hardest part of not being a programmer: AI makes the script bigger and more complex, and if you don’t follow along, you’re doomed.
At one point, our script mysteriously shrunk from 200 lines to 115—and no, it didn’t magically become more efficient. BittyGPT just forgot logic along the way.
Biggest lesson: follow the logic of what you’re doing, rinse, repeat, and mostly—stay on top of it! 🧠🔥
Lessons Learned: Embracing the Chaos of Vibe Coding
Despite all these hurdles—or perhaps because of them—I thoroughly enjoyed the journey.
Using AI to collaboratively vibe code through complex challenges felt both empowering and humbling. BittyGPT didn’t just give me code snippets; it helps me build a product even though debugging can be painful.
🔹 BittyGPT is great at generating code, but it doesn’t reason.
🔹 AI forgets logic and dependencies, so you must act as the conductor.
🔹 ChatGPT is your orchestra, but you lead the way.
🔹 Patience, structure, and persistence matter more than the AI itself.
If you’re on the fence about using AI to help you build your next passion project, jump right in. You’ll hit some rough patches, sure, but you’ll also experience the pure joy of turning casual conversations into tangible outcomes.
BittyGPT and I still have a long way to go. But, as we learned through this wild adventure:
Every great knowledge base started as a mildly chaotic idea, a dash of stubbornness, and the determination to keep going. Even when your sidebar tries to sabotage you. We’re not there yet, but it’s been an interesting start!
Stay tuned as we keep vibe coding our way forward. Because the best part of learning is sharing it. 🚀✨
👉 Check out the chaos on GitHub!