The Ultimate LLM Showdown: Who Can Build a Working Chrome Extension?
Quick, when I say "vibe coding," what instantly pops into your head? Probably some full-stack CRUD apps, snazzy websites whipped up in minutes, or portfolio sites that mysteriously all rock the same hero section (bonus points for a gradient background). But let me tell you, I've been vibe coding since OpenAI first unleashed ChatGPT on the world, and my projects aren't so predictable. 🙅♂️
So, what was my first vibe-coded creation, you ask? A Chrome extension, baby! 🎉 I can't remember exactly what it did (let's be real, does it even matter?), but I distinctly remember that it worked. And that's what counts, right? Now, I decided to put three of the biggest, baddest LLMs—Claude, ChatGPT, and Gemini—to the test with the same challenge: build me a Chrome extension from the ground up. 👨💻
Chrome Extensions: The Ultimate LLM Litmus Test
Load It, Click It, Pray 🙏
When you're vibe coding a massive app or website with an LLM, eventually you'll hit that wall. You know the one. Hosting. Deployment. Environment variables. Databases. The list goes on. To be fair, if you're rocking tools like Replit or Lovable, you can deploy with a single click. But at the end of the day, you're testing the platform as much as the model itself. 😅
But Chrome extensions? Oh, they're a whole different ballgame. No backend, hosting, or databases to worry about. You just load a folder into the Extensions section of your browser and pray. It either works or it doesn't. Chrome extensions are the perfect bite-sized test. They consist of just a few key files: a manifest.json that tells Chrome what's up, and then HTML, JavaScript, and CSS files. You know, languages that LLMs can actually handle. 🙏
So, what brilliant extension idea did I present to these AI masterminds? An extension that lets me search through my Instagram story viewers. 🕵️♂️ I know, I know, you're probably thinking, "Really? That's your big idea?" But hear me out. If you've ever had hundreds (or even thousands) of people view your Instagram story and tried to find one specific person in that list, you know the struggle. I figured a Chrome extension was the perfect solution. And thus, the battle of the LLMs began. 🔥
ChatGPT’s Attempt: Decent, But Not Quite There
It Worked…Sort Of 🤷♂️
I started with ChatGPT, using GPT-5.5 Thinking set to Extended. I gave it a basic prompt, and within two minutes, it spat out a Manifest V3 extension called IG Story Viewer Search. Impressive, right? It even handed me a ZIP file I could download and load straight into Chrome. But when I actually tried to use the extension, it was a whole different story. 😒
First of all, I couldn't even click the extension! GPT-5.5 quickly realized its mistake (no toolbar popup, duh) and patched it up, giving me a shiny new ZIP file. But even then, the extension only worked with a handful of viewers at a time. Turns out, Instagram "lazy-loads" the viewer list. Who knew? 🙄
After multiple rounds of debugging, GPT-5.5 finally built a version that could handle long viewer lists. It added an "Index all viewers" button that auto-scrolls the list and builds a searchable index. Except… it still didn't work as I wanted. The extension only handled the viewers visible on the screen. 🤦♂️
GPT-5.5 gave it one more shot with version 1.4, adding two new modes to work around Instagram's "quirks." "Auto-index all" was supposed to scroll through the viewer list and collect names as Instagram loaded them. But even GPT admitted this mode might be unreliable. The second mode, "Start live capture," watches the viewer list in real time and captures usernames as they appear while you manually scroll. 📹
I tested this version on a story with around 400 views, and guess what? The "Auto-index all" button was a total fail. The live capture button worked better, but it still wasn't the seamless "search anyone instantly" experience I was dreaming of. The extension could remember viewers after they appeared on screen, but it couldn't access the full list before Instagram loaded it. 🙅♂️
In the end, GPT-5.5's extension was functional…ish. It solved my problem in the loosest sense of the word, but it was more of a rough prototype than a polished tool. 🏆
Gemini’s Attempt: A Prompt Instead of a Product 🤦♂️
The Extension That Never Worked 😵
Now, onto Gemini. I've been a huge fan of Google's AI efforts for a while now, but man, was I disappointed. Right off the bat, Gemini didn't even write an extension. Instead, it gave me a full architectural breakdown, a DOM traversal lecture, and… a master prompt? Gemini, why would I have come to you in the first place if I wanted to paste a prompt into another tool? 🤔
After some coaxing, Gemini finally got to work. But instead of handing me a nice, neat ZIP file like GPT did, it gave me each file separately and told me to create a folder and save them myself. Really, Gemini? I did as it said, but surprise surprise, the extension didn't work at all. 🙅♂️
What followed was six rounds of increasingly confident fixes that all failed in different ways. By the end of round four, the search bar finally appeared, but it couldn't find a single viewer. I had some more back-and-forth with Gemini, but eventually, I just gave up. 😞
Claude’s Attempt: Third Time’s the Charm 🌟
The One That Actually Shipped 🚀
After the extensions GPT and Gemini produced, my expectations had plummeted. But lo and behold, Claude surprised me. Its first version didn't work either, but after looking into Instagram's current DOM structure, it rebuilt the extension using Instagram's internal API endpoints. And voilà, it finally worked! 🎉
When I clicked the icon, there was a working search bar and a full viewer list pulled straight from Instagram's API. The only issue? It grouped all my story viewers together into one big list instead of letting me search through viewers for each individual story. I told Claude, and within one more message, it gave me version 3. 🙌
This version added a visual story strip at the top with thumbnails, timestamps, and view counts. I could tap any story to load just that story's viewers, then search within it. And that was it. It worked, and it didn't need any more follow-up messages. Finally! 🙏
The Final Verdict
So, who reigned supreme in the ultimate LLM showdown? Claude, hands down. It built the extension the quickest, with the fewest messages required, and it was the only tool that managed to build something fully functional by the end. ChatGPT built something workable, and Gemini just didn't. 🏆
In the world of vibe coding, it's all about speed, efficiency, and actually delivering a working product. And in this challenge, Claude proved itself to be the top dog. Next time, I'm starting with Claude. 😎
But hey, don't just take my word for it. Try vibe coding your own wild ideas and see which LLM comes out on top. And if you do, make sure to share your creations (no matter how wacky) in the comments below! Happy coding! 👨💻💻
Loading neon eBay deals...
