Ho fatto costruire la stessa estensione di Chrome a Claude, ChatGPT e Gemini, e solo una ha effettivamente funzionato
Il vibe coding è ovunque adesso. Tuttavia, quando la maggior parte delle persone sente il termine, la loro mente pensa istantaneamente a costruire app full-stack CRUD, siti web rifiniti che puoi creare in pochi minuti, o siti portfolio che in qualche modo hanno tutti la stessa sezione principale (e sfondo sfumato). Ora, come qualcuno che ha sempre decine di idee che girano nella testa, faccio una versione di "vibe coding" da quando OpenAI ha lanciato ChatGPT pubblicamente.
Detto ciò, la primissima cosa che ho codificato con il mio stile non è stato un sito web, una landing page o un'app. Invece, è stata un'estensione di Chrome. Non ricordo esattamente cosa dovesse fare, ma ricordo che funzionava. Così, ho deciso di tornare all'inizio e sottoporre tre dei più grandi LLM (Claude, ChatGPT e Gemini) allo stesso test: costruiscimi un'estensione di Chrome da zero.
Le estensioni di Chrome sono il test di stress di codifica vibe più facile
Caricalo, cliccalo, prega
Quando usi un LLM per programmare in modo intuitivo un'app o un sito web completo, è probabile che alla fine raggiungerai una fase in cui dovrai affrontare questioni come hosting, deployment, variabili d'ambiente, database e una dozzina di altri problemi di infrastruttura. Ad essere onesti, questo dipende dallo strumento che stai utilizzando, poiché strumenti come Replit e Lovable ti permettono di fare il deployment direttamente dalla loro piattaforma con un solo clic. Ma anche in quel caso, stai ancora testando la piattaforma tanto quanto il modello. Le estensioni di Chrome, invece, non richiedono nulla di tutto ciò. Non c'è un backend, hosting o database di cui devi davvero preoccuparti. Devi solo caricare una cartella nella sezione Estensioni del tuo browser e funziona o non funziona.
Le estensioni di Chrome consistono di pochi file: un manifest.json che dice a Chrome esattamente cosa fa l'estensione, e poi file HTML, JavaScript e CSS. Questi sono tre linguaggi che i modelli di linguaggio tendono a gestire abbastanza bene. Poiché le estensioni di Chrome sono progettate per risolvere un problema specifico, rappresentano un test perfetto in formato ridotto poiché c'è un obiettivo chiaro. Ogni volta che faccio questo tipo di test, preferisco scegliere un'idea che in realtà avrei voluto costruire io stesso. Non solo questo mi dà la scusa perfetta per iniziare davvero a costruirla, ma rende anche il test estremamente equo.
Avvertenza preventiva, l'estensione che ho in mente potrebbe sembrare un po'... sciocca e non convenzionale, quindi abbiate pazienza. Volevo un'estensione che mi permettesse di cercare tra i visualizzatori delle mie storie Instagram. Non sono sicuro del perché questa funzione non sia ancora nativa, ma se avete mai avuto centinaia (e a volte migliaia) di persone a visualizzare la vostra storia su Instagram e avete provato a trovare una persona specifica in quella lista, conoscete già il disagio. In teoria, sapevo che un'estensione per Chrome avrebbe risolto il problema, quindi è quello che ho deciso di proporre a tutti e tre i modelli per vedere chi potesse effettivamente realizzarla. Ho usato un prompt estremamente vago — ho semplicemente detto a ciascun modello cosa volevo e non ho fornito molti dettagli. Di nuovo, l'obiettivo qui è vedere quanto bene ogni modello può prendere un'idea semplice e capire da solo il resto.
ChatGPT ha creato un'estensione decente
Ha funzionato, ma non penso che lo userei
Prima di andare oltre, non ho usato Claude Code, Codex o Antigravity (l'IDE agente di Google che funziona con Gemini) per costruire questo. Invece, ho usato l'interfaccia chat standard per ciascuno con i loro modelli più recenti e sottoscrizioni a pagamento su tutti i fronti. Per questo ho usato GPT-5.5 Thinking, impostando lo sforzo di pensiero su Esteso. Ho iniziato con un prompt di base, e ha messo insieme un'estensione Manifest V3 in meno di due minuti. L'estensione si chiama IG Story Viewer Search, e mi ha direttamente fornito un file ZIP che potevo scaricare e caricare direttamente in Chrome. Finora, tutto bene. In base alla descrizione, l'estensione avrebbe dovuto aggiungere una casella di ricerca flottante quando la mia lista dei visualizzatori delle Instagram story è aperta.
Non appena ho caricato l'estensione, non riuscivo nemmeno a cliccarla! GPT-5.5 si è poi reso conto che la prima versione che aveva prodotto non aveva alcun popup nella barra degli strumenti, ed è per questo che cliccare l'estensione non faceva nulla. L'ha corretta e mi ha fornito un nuovo file ZIP. Testandola, ho capito che l'estensione funzionava, ma funzionava solo con pochi spettatori alla volta. L'LLM ha spiegato che questo accade perché Instagram "carica lentamente" la lista degli spettatori. Dopo questo, GPT-5.5 ha ricostruito correttamente l'estensione per liste lunghe di spettatori. Con questa nuova versione, ChatGPT ha affermato di aver aggiunto un nuovo pulsante "Indicizza tutti gli spettatori" che scorre automaticamente la lista degli spettatori della storia e costruisce un indice locale ricercabile. Durante il test, l'estensione non funzionava ancora come volevo e funzionava solo con gli spettatori visibili sullo schermo.
Dopo 2 minuti e 11 secondi di riflessione, mi ha fornito la versione 1.4, che aggiungeva due nuove modalità per aggirare il fastidioso comportamento di Instagram nella lista dei visualizzatori. La prima era Auto-index all, che doveva scorrere automaticamente la lista dei visualizzatori e raccogliere i nomi man mano che Instagram li caricava. Ma GPT-5.5 ha anche ammesso che Instagram potrebbe bloccare o interrompere lo scorrimento programmato, quindi questa modalità potrebbe comunque non essere affidabile. La seconda modalità, più importante, era Start live capture. Invece di cercare di costringere Instagram a caricare tutti automaticamente, questa modalità osserva la lista dei visualizzatori in tempo reale e cattura i nomi utenti mentre appaiono mentre scorri manualmente dall’alto verso il basso. Ho testato questo su una storia che aveva circa 400 visualizzazioni e, come previsto da GPT, il pulsante Auto-indice tutto non ha funzionato. Ho provato il pulsante di cattura in tempo reale e poi ho scansionato lentamente l'intera lista dei visualizzatori da solo. Questo ha funzionato meglio, ma non era comunque l'esperienza senza soluzione di continuità di "cercare chiunque istantaneamente" che avevo inizialmente in mente.
Ha praticamente trasformato l'estensione in uno strumento per catturare mentre scorri. L'estensione poteva ricordare gli spettatori dopo che apparivano sullo schermo, ma non riusciva ancora a accedere magicamente alla lista completa degli spettatori prima che Instagram la caricasse. Stranamente, elencava alcuni utenti come voci separate, e il conteggio totale delle visualizzazioni mostrava più di 700 utenti. Alcuni utenti funzionavano correttamente, mentre altri venivano suddivisi in voci separate a seconda del loro nome. Detto questo, la ricerca funzionava questa volta, ma era chiaramente ancora un prototipo grezzo piuttosto che uno strumento rifinito. Risolveva il problema originale nel senso più ampio possibile: se scorrevamo manualmente la lista prima, potevamo poi cercare le persone che erano state catturate. Ma l'indicizzazione era disordinata, duplicava alcune voci, interpretava parti dei nomi visualizzati come utenti separati e gonfiava il conteggio degli spettatori ben oltre il numero effettivo di visualizzazioni delle storie.
Quindi, mentre GPT-5.5 alla fine ha fatto funzionare le funzionalità principali, ci sono voluti più cicli di debug e si è comunque concluso con una soluzione abbastanza artigianale.
Il primo istinto di Gemini era quello di darmI un prompt
L'estensione non ha mai funzionato
Sono stato un grande fan degli sforzi di Google nell'IA per un po' di tempo, ma continuo a trovare nuovi motivi per essere deluso. Dopo aver finito di testare l'estensione di GPT-5.5, era il momento di mettere alla prova Gemini, e quello che ha prodotto è stato semplicemente... imbarazzante. Subito dall'inizio, non ha nemmeno scritto l'estensione. Invece, mi ha dato una spiegazione completa dell'architettura, una lezione sulla traversata del DOM e... aspettate... un prompt principale che avrei dovuto incollare in un IDE agentico. Gemini, perché sarei venuto da te in primo luogo se volevo incollare un prompt in un altro strumento?
Poi ho chiesto se poteva effettivamente creare l'estensione per me, e si è messo al lavoro. A differenza di GPT o Claude, non mi ha consegnato un file ZIP che potevo decomprimere e caricare direttamente in Chrome. Invece, mi ha dato ogni file separatamente (manifest.json, content.js e styles.css) e mi ha detto di creare una cartella e salvarli da solo. L'ho fatto, e l'estensione non ha funzionato affatto. La versione di Gemini ha adottato un approccio completamente diverso rispetto a quello di GPT.
Invece di un popup sulla barra degli strumenti, ha cercato di inserire una barra di ricerca direttamente nell'interfaccia di Instagram, direttamente all'interno del modulo del visualizzatore stesso. La barra di ricerca non è mai apparsa. Ho parlato con Gemini, e ciò che è seguito sono stati sei round di correzioni sempre più sicure che tutte fallivano in modi diversi. Alla fine del quarto round, la barra di ricerca è finalmente apparsa, ma non riusciva a trovare un singolo visualizzatore. Ho avuto qualche ulteriore scambio e alla fine ho semplicemente rinunciato alla conversazione.
Claude ha dovuto prendere tre messaggi per farlo giusto
Quello che è effettivamente stato spedito
Dopo le estensioni che GPT e Gemini avevano prodotto, le mie aspettative erano notevolmente diminuite. Ora, nemmeno la prima versione di Claude funzionava. Claude ha quindi esaminato la struttura DOM attuale di Instagram e ha ricostruito l'estensione usando invece gli endpoint API interni di Instagram (che ha spiegato essere molto più affidabili dato che sono già loggato nel mio account). E voilà, finalmente ha funzionato.
Quando ho cliccato sull'icona, c'era una barra di ricerca funzionante e un elenco completo dei visualizzatori prelevato direttamente dall'API di Instagram. L'unico problema era che raggruppava tutti i miei visualizzatori delle storie in un unico grande elenco invece di permettermi di cercare i visualizzatori per ogni singola storia. L'ho detto a Claude, e nel giro di un altro messaggio mi ha dato la versione v3. Questa versione ha aggiunto una striscia visiva delle storie in cima con miniature, timestamp e conteggi delle visualizzazioni. Potevo toccare qualsiasi storia per caricare solo i visualizzatori di quella storia, quindi cercare al suo interno. E quello era tutto. Funzionava, e non servivano altri messaggi di follow-up. Finalmente!
La prossima volta, comincerò con Claude
Claude ha costruito l'estensione più velocemente, con il minor numero di messaggi necessari, ed è l'unico strumento che è riuscito a costruire qualcosa di completamente funzionante alla fine. ChatGPT ha costruito qualcosa di utilizzabile, mentre Gemini semplicemente no.







