Ik liet Claude, ChatGPT en Gemini elk dezelfde Chrome-extensie maken, en alleen één werkte daadwerkelijk
Vibe coding is nu overal. Toen de meeste mensen de term echter horen, gaat hun gedachten automatisch naar het bouwen van full-stack CRUD-apps, gepolijste websites die je binnen enkele minuten kunt maken, of portfolio-sites die op de een of andere manier allemaal dezelfde hero-sectie hebben (en een verloopachtergrond). Nu, als iemand die altijd tientallen ideeën in mijn hoofd heeft rondzwerven, doe ik sinds de publieke lancering van ChatGPT door OpenAI een soort van 'vibe coding'.
Dat gezegd hebbende, het allereerste dat ik vibe-codeerde was geen website, landingspagina of app. In plaats daarvan was het een Chrome-extensie. Ik herinner me niet precies wat het moest doen, maar ik weet nog dat het werkte. Dus besloot ik terug naar het begin te gaan en drie van de grootste LLM's (Claude, ChatGPT en Gemini) door dezelfde test te halen: bouw voor mij een Chrome-extensie vanaf nul.
Chrome-extensies zijn de gemakkelijkste vibe-coderingsstress test
Laad het, klik het, bid
Wanneer je een LLM gebruikt om code te genereren voor een volledige app of website, is de kans groot dat je uiteindelijk een fase bereikt waarin je hosting, deployment, omgevingsvariabelen, databases en een dozijn andere infrastructuurproblemen moet uitzoeken. Om eerlijk te zijn hangt dit af van de tool die je gebruikt, aangezien tools zoals Replit en Lovable je direct vanaf hun platform met één klik laten deployen. Maar zelfs dan test je net zo goed het platform als het model. Chrome-extensies daarentegen vereisen niets van dat alles. Er is geen backend, hosting of databases waar je je echt zorgen over hoeft te maken. Je laadt gewoon een map in de Extensies-sectie van je browser en het werkt of het werkt niet.
Chrome-extensies bestaan uit slechts een paar bestanden: een manifest.json die Chrome precies vertelt wat de extensie doet, en vervolgens HTML-, JavaScript- en CSS-bestanden. Dit zijn drie talen die LLM's redelijk goed lijken te kunnen verwerken. Omdat Chrome-extensies zijn ontworpen om één specifiek probleem op te lossen, vormen ze de perfecte test in kleine stukjes, aangezien er een duidelijk doel is. Wanneer ik dit soort tests doe, geef ik de voorkeur aan het kiezen van een idee dat ik echt zelf al van plan was te bouwen. Dat geeft me niet alleen de perfecte aanleiding om er daadwerkelijk aan te beginnen, maar het zorgt ook voor een uiterst eerlijke test.
Eerlijke waarschuwing, de extensie waar ik aan denk klinkt misschien een beetje... gek en ongebruikelijk, dus heb geduld met me. Ik wilde een extensie die me laat zoeken door mijn Instagram story-kijkers. Ik weet niet waarom dit nog geen native functie is, maar als je ooit honderden (en soms duizenden) mensen je Instagram story hebt zien bekijken en hebt geprobeerd om één specifieke persoon in die lijst te vinden, dan ken je al de frustratie. In theorie wist ik dat een Chrome-extensie de truc zou doen, dus dat is wat ik besloot op alle drie de modellen los te laten om te zien wie het daadwerkelijk voor elkaar kon krijgen. Ik gebruikte een uiterst vaag prompt — ik vertelde elk model gewoon wat ik wilde en gaf niet veel details. Nogmaals, het doel hier is om te zien hoe goed elk model een eenvoudig idee kan oppakken en de rest zelf kan uitvinden.
ChatGPT heeft een behoorlijke extensie gebouwd
Het werkte, maar ik denk niet dat ik het zou gebruiken
Voordat ik verder ga, heb ik geen Claude Code, Codex of Antigravity (Google's agentische IDE die met Gemini werkt) gebruikt om dit te maken. In plaats daarvan heb ik de standaard chatinterface voor elk gebruikt met hun nieuwste modellen en betaalde abonnementen over de hele linie. Voor deze heb ik GPT-5.5 Thinking gebruikt en de denkinspanning ingesteld op Extended. Ik begon met een basic prompt, en het stelde in minder dan twee minuten een Manifest V3-extensie samen. De extensie heet IG Story Viewer Search, en het gaf me direct een ZIP-bestand dat ik kon downloaden en rechtstreeks in Chrome kon laden. Tot nu toe gaat het goed. Op basis van de beschrijving zou de extensie een zwevend zoekvak moeten toevoegen wanneer mijn Instagram story viewer-lijst open is.
Zodra ik de extensie had geladen, kon ik er niet eens op klikken! GPT-5.5 realiseerde zich toen dat de eerste versie die het had geproduceerd geen werkbalk-popup had, vandaar dat het klikken op de extensie niets deed. Het patchte het en gaf me een nieuw ZIP-bestand. Bij het testen hiervan realiseerde ik me dat de extensie werkte, maar het zou slechts met een paar kijkers tegelijk werken. De LLM legde uit dat dit gebeurde omdat Instagram de kijkerlijst "lazy-loadt". Daarna bouwde GPT-5.5 de extensie correct opnieuw voor lange kijkerlijsten. Met deze nieuwe versie beweerde ChatGPT een nieuwe knop "Indexeer alle kijkers" te hebben toegevoegd die automatisch door de kijkerlijst van de story scrolt en een lokaal doorzoekbare index maakt. Bij het testen werkte de extensie echter weer niet zoals ik wilde, en werkte het alleen met de kijkers die op het scherm te zien waren.
Na 2 minuten en 11 seconden nadenken, gaf het me versie 1.4, die twee nieuwe modi toevoegde om te werken rond het vervelende kijkerslijstgedrag van Instagram. De eerste was Alles automatisch indexeren, wat bedoeld was om automatisch door de kijkerslijst te scrollen en namen te verzamelen terwijl Instagram ze laadde. Maar GPT-5.5 gaf ook toe dat Instagram programmatig scrollen zou kunnen blokkeren of onderbreken, dus deze modus kan nog steeds onbetrouwbaar zijn. De tweede, belangrijkere modus was Start live capture. In plaats van te proberen Instagram te dwingen iedereen automatisch te laden, kijkt deze modus in realtime naar de kijkerslijst en legt gebruikersnamen vast terwijl ze verschijnen terwijl ik handmatig van boven naar beneden scroll. Ik heb dit uitgeprobeerd op een verhaal dat ongeveer 400 weergaven had, en zoals GPT voorspelde, werkte de knop Auto-index alles niet. Ik probeerde de knop Live capture en scrollde toen langzaam zelf door de hele kijkerlijst. Dit werkte beter, maar het was nog steeds niet de naadloze "iedereen onmiddellijk zoeken" ervaring die ik oorspronkelijk voor ogen had.
Het veranderde de extensie in feite in een capture-as-you-scroll-tool. De extensie kon kijkers onthouden nadat ze op het scherm verschenen waren, maar ze kon nog steeds niet op magische wijze de volledige kijkerlijst openen voordat Instagram deze laadde. Vreemd genoeg werden sommige gebruikers als aparte vermeldingen weergegeven, en het totale aantal weergaven werd weergegeven als 700+ gebruikers. Sommige gebruikers werkten goed, terwijl andere werden opgesplitst in afzonderlijke vermeldingen afhankelijk van hun naam. Dat gezegd hebbende werkte het zoeken deze keer wel, maar het was duidelijk nog steeds een ruwe prototype en geen gepolijste tool. Het loste het oorspronkelijke probleem op in de ruimste zin van het woord: als ik eerst handmatig door de lijst scrollde, kon ik daarna zoeken naar mensen die waren vastgelegd. Maar de indexering was rommelig, dupliceerde sommige vermeldingen, las delen van weergavenamen verkeerd als aparte gebruikers, en blies het aantal kijkers veel verder op dan het werkelijke aantal story-weergaven.
Dus terwijl GPT-5.5 uiteindelijk de kernfunctionaliteit aan de praat kreeg, kostte het meerdere rondes van debuggen en eindigde het nog steeds met een vrij rommelige noodoplossing.
Gemini's eerste instinct was om mij een prompt te geven
De extensie werkte nooit
Ik ben al een tijd een grote fan van Googles AI-inspanningen, maar ik blijf nieuwe redenen vinden om teleurgesteld te zijn. Nadat ik klaar was met het testen van de GPT-5.5-extensie, was het tijd om Gemini op de proef te stellen, en wat het produceerde was gewoon... beschamend. Meteen al schreef het de extensie niet eens. In plaats daarvan gaf het me een volledige architecturale uiteenzetting, een lezing over DOM-traversal en... wacht even... een masterprompt die ik in een agentic IDE zou moeten plakken. Gemini, waarom zou ik überhaupt naar jou zijn gekomen als ik een prompt in een ander hulpmiddel wilde plakken?
Ik vroeg toen of het de extensie daadwerkelijk voor mij kon maken, en het ging aan het werk. In tegenstelling tot GPT of Claude gaf het me geen ZIP-bestand dat ik kon uitpakken en rechtstreeks in Chrome kon laden. In plaats daarvan kreeg ik elk bestand afzonderlijk (manifest.json, content.js en styles.css) en werd mij verteld om zelf een map te maken en ze op te slaan. Dat deed ik, en de extensie werkte helemaal niet. Gemini's versie nam een totaal andere aanpak dan die van GPT.
In plaats van een werkbalk-popup probeerde het een zoekbalk rechtstreeks in de gebruikersinterface van Instagram te injecteren, direct binnen de viewer-modal zelf. De zoekbalk verscheen nooit. Ik vertelde het aan Gemini, en wat volgde waren zes rondes van steeds zelfverzekerdere oplossingen die allemaal op verschillende manieren mislukten. Tegen het einde van ronde vier verscheen de zoekbalk eindelijk, maar hij kon geen enkele viewer vinden. Ik had nog wat meer heen en weer gepraat en gaf uiteindelijk gewoon de gesprekken op.
Claude had drie pogingen nodig om het goed te krijgen
Degene die daadwerkelijk verscheept werd
Na de uitbreidingen die GPT en Gemini hadden geproduceerd, waren mijn verwachtingen aanzienlijk gedaald. Nu werkte ook Claude's eerste versie niet. Claude keek toen naar de huidige DOM-structuur van Instagram en bouwde de extensie opnieuw met behulp van Instagram's interne API-eindpunten (waarvan het uitlegde dat ze veel betrouwbaarder zijn omdat ik al bij mijn account was ingelogd). En voilà, het werkte eindelijk.
Toen ik op het pictogram klikte, was er een werkende zoekbalk en een volledige kijkerslijst die rechtstreeks uit de API van Instagram werd gehaald. Het enige probleem was dat het al mijn story-kijkers samenvoegde in één grote lijst in plaats van me te laten zoeken door kijkers voor elke individuele story. Ik vertelde het aan Claude, en binnen nog één bericht gaf het me v3. Deze versie voegde een visuele story-strip toe bovenaan met miniaturen, tijdstempels en aantal weergaven. Ik kon op een story tikken om alleen de kijkers van die story te laden, en vervolgens daarin zoeken. En dat was het. Het werkte, en er waren geen verdere berichten nodig. Eindelijk!
De volgende keer begin ik met Claude
Claude heeft de uitbreiding het snelst gebouwd, met de minste benodigde berichten, en het is het enige hulpmiddel dat erin slaagde om tegen het einde iets volledig functioneels te bouwen. ChatGPT bouwde iets werkbaars, en Gemini deed dat gewoon niet.







