The Good, The Bad, and the “Why Did I Even Try This?”
Catching up on the MCP & VibeCoding Trend aka Project.
So, the last few weeks have been intense like, “trying to debug at 3 a.m. with only coffee and existential dread for company” intense. As I mentioned before, I dove headfirst into building a few simple tools, powered by MCP Servers and Vibe Coding. Sure, part of it was for the thrill of experimentation, but the real goal? To prove I can actually ship something useful for the Web3 community, and, ideally, not break the internet in the process. This post is a follow-up to my previous one (in case you missed it, because continuity is important), and I’m here to share what I’ve learned, what’s worked, and what’s gone spectacularly sideways.
For the front end, I played with v0.dev for mockups. Integrating with its native database (Supabase) was surprisingly smooth, like buttering toast, if your toaster occasionally caught fire. It also follows step-by-step instructions well, or at least better than Dudes. But ultimately, I abandoned it because connecting endpoints to MCP Servers was like trying to plug a USB-C in the dark: technically possible, but mostly frustrating.
Key takeaway: For simple landing pages and basic flows, v0.dev is your friend. For anything more complex, it’s more of a frenemy.
Then there’s Cursor, the reigning monarch of Vibe Coding. It shines if you’re a seasoned developer who knows exactly what code you want. Think of it as a “sous-chef who only slices onions when you ask.” But if you let it run the whole workflow, things fall apart faster than a Hollywood star's reputation driving drunk. (Check out the broken commits in this Git repo for a highlight reel of “what not to do.”)
A quick shoutout to Github Copilot: great for debugging and diagnosing, but let’s be honest, I still hadn’t built anything functional at that point.
Enter Windsurf: My New Favorite (Sorry, Cursor)
For this project, I settled on Windsurf, plus two public MCP Server repos. Here’s why Windsurf won my heart: it has a “Cascade” model that breaks every step into smaller, manageable chunks. This means you can accept or reject changes before they go live—a feature so useful, I’m convinced it was designed by someone who’s been burned by one too many rogue commits.
But the real MVP? Cascade lets you spot mistakes early and update your best practices as you go. I now have a cheat sheet for Windsurf (and, honestly, any Vibe Coding tool):
Before connecting to external libraries, normalize everything from classes, versions, methods, the whole shebang. If you let these tools run wild without checking for redundancy or endpoint alignment, you’re basically inviting chaos to your codebase.
I learned this the hard way: I crashed at least five times, each costing about 12 hours of solid work, before I figured out a system. The system? Ask Windsurf to generate a global best practices doc. Every time I hit a snag, I update the doc locally or globally if it applies.
I make Windsurf acknowledge this doc constantly. When something breaks, we review the step, patch it, and immortalize the fix as a new best practice. It’s like having a living, breathing “how not to screw up” manual.
On Simplicity, Copilots, and the Art of Not Overcomplicating
Your copilot won’t always choose the simplest tool for the job, which can be a nightmare when things need updating. So, I wrote a deep-dive on my definition of simplicity, with examples. This lives in the global best practices doc. Whenever I need my copilot to “get creative,” I make it read this first. Think of it as mandatory reading—like Terms & Conditions, but actually useful.
Last relevant learning till date:
Don’t let your copilot “read” documentation—trust me, it’ll skim and miss the good stuff. Instead, ask it: “What are we looking for?” If something’s hard to find, have it write a search script for you. Screenshots are also gold for context.
I’ve got online versions of these docs if you want a peek:
MCP Server Integration Cheat Sheet
A Few MCP Server Pro Tips
Your output isn’t a real port, it’s a string. This gets tricky if you’re constantly updating services. Keep this in mind when chasing simplicity.
There are tons of new tools and libraries popping up, but the Python MCP Server SDK is the real workhorse. If you know Python, you can connect almost anything.
What’s Next? Trivia, Bots, and Demo Day Panic
I’m building a trivia game to educate users about Web3, based on a Python-based MCP Server called “Two Truths and a Twist”. The UI is handled by @BotFather (yes, the Telegram tool, not a mafia boss). Demo Day is tomorrow morning. Once the bot is live, I’ll share access, the roadmap, and a few use cases right here.
This space is all about learning the tech shaping our future. As we discussed a few weeks ago, there’s never been a better time to build—and with Vibe Coding, you don’t even need to wait for divine inspiration. Just maybe a little less chaos.
Let me know if you want a deeper dive, more specifics, or just more jokes about debugging-induced existential crises.