Il problema del Giorno Due: quando l'app creata con vibe coding incontra utenti reali

Il problema del Giorno Due: quando l'app creata con vibe coding incontra utenti reali

10 giugno 2026

Il primo giorno di un’app creata con il vibe-coding è la migliore demo che abbiate mai fatto. Il prompt ha funzionato, le schermate sono pulite, il database è popolato e avete pubblicato un tweet con una registrazione dello schermo. Abbiamo vissuto quel giorno molte volte. Non siamo qui per portarvelo via.

Siamo qui per parlare del secondo giorno, perché nessun thread di lancio ne parla. Il secondo giorno è quando un utente reale effettua l’accesso, fa qualcosa che non avevate pensato di testare e la vostra app si scontra con il divario tra “generato” e “ingegnerizzato”.

Com’è fatto concretamente il secondo giorno

Raramente inizia con un crash. Inizia con qualcosa di strano: un modulo che accetta dati a caso, una pagina che si rompe per un utente specifico, un numero sbagliato in un modo che nessuno riesce a riprodurre. Incollate l’errore nella chat. L’AI lo corregge con sicurezza. La correzione rompe qualcos’altro.

Benvenuti nel gioco del “whack-a-mole” dei prompt. Poiché l’AI corregge i sintomi invece delle cause profonde, ogni patch si sovrappone alla precedente e il codebase diventa silenziosamente quello che gli sviluppatori chiamano codice Frankenstein: un mosaico di stili contrastanti, funzioni duplicate e logiche aggrovigliate dove le query del database vivono all’interno del codice dell’interfaccia. Man mano che il progetto cresce oltre la finestra di contesto dell’AI, il modello inizia a dimenticare le proprie decisioni precedenti e propone codice che le contraddice. Non state più gestendo un’app. State negoziando con un’app.

C’è una variante ancora più crudele: il fallimento silenzioso del deploy. La build dell’hosting fallisce per un errore minore, l’URL live continua a mostrare la vecchia versione e voi - non vedendo cambiamenti - dite all’AI che la sua correzione “non ha funzionato”. Quindi l’AI genera una soluzione completamente diversa e più complessa a un problema che era già stato risolto. Dopo diversi round, vi ritrovate con una v5 gonfia di un codice la cui v1 era perfetta.

Appare un bug strano
Un modulo accetta dati errati o una pagina crasha per un utente.
Incolla l'errore
L'errore finisce nella chat.
L'AI cura i sintomi
L'AI propone con sicurezza una soluzione.
Qualcos'altro si rompe
La correzione rompe un'altra funzionalità.
Le patch si accumulano
Ogni patch si sovrappone alla precedente.
Ogni correzione rapida può spostare il problema invece di risolverlo.

La parte che non potete vedere

Il tapis roulant del debugging è almeno visibile. I problemi di sicurezza no, ed è per questo che siamo severi a riguardo quando si tratta di build aziendali.

Le ricerche in materia sono davvero inquietanti. Il codice generato da LLM compila con successo circa il 90% delle volte, ma circa il 45% contiene vulnerabilità OWASP Top 10 - controlli di login aggirabili, falle di injection. Gli strumenti AI ottimizzano per far funzionare la demo, il che produce scorciatoie prevedibili: controllo degli accessi implementato nel browser dove qualsiasi utente può aggirarlo modificando la pagina, permessi del database impostati aperti per evitare errori durante la build e chiavi API scritte in chiaro nei file perché chi costruisce non sa cosa sia una variabile d’ambiente. Quei file vengono poi caricati su repo GitHub pubblici, dove gli scraper di credenziali li trovano puntualmente.

Ecco perché questo è specificamente un problema del secondo giorno: un’app vulnerabile funziona perfettamente. Non c’è un messaggio di errore per “il cliente A può tecnicamente leggere i record del cliente B”. Lo scoprite tramite un utente, se siete fortunati, o molto peggio se non lo siete. E il consiglio standard (“testala e basta!”) si scontra con la realtà: chi non è tecnico testa il percorso ideale, mentre il fallimento risiede nei casi limite - il bug di concorrenza, il flusso di reset della password dimenticato che l’AI non ha mai generato perché la demo non ne aveva bisogno.

Scorciatoie prevedibili del codice generato dall'AI
Controllo accessi del browserPermessi del database troppo ampiChiavi API hardcoded
Problemi di sicurezza
Gli scraper di credenziali trovano file pubblici su GitHub regolarmente.
La demo può funzionare, ma scorciatoie prevedibili espongono l'app.

Il debito di manutenzione che nessuno elenca

Sommate queste dinamiche nell’arco di mesi e otterrete quello che consideriamo il “prestito a usura” del debito tecnico: software istantaneo ora, interessi composti più tardi. Ogni scorciatoia presa dall’AI è una futura correzione. Ogni correzione significa qualche credito in più e un po’ più di gonfiore del codice. Gli aggiornamenti della piattaforma arrivano e rompono cose che non avete toccato - gli sviluppatori a lungo termine su piattaforme prompt-to-app riferiscono di addebitare ai clienti canoni di manutenzione mensili solo per gestire le regressioni della piattaforma stessa.

Questa è la battuta amara al centro di tutto: il vibe coding prometteva di democratizzare il software e, per le app in produzione, ha soprattutto democratizzato il debito tecnico. Il costruttore non tecnico finisce per trovarsi esattamente ciò che voleva evitare usando l’AI - un codebase che richiede il giudizio di uno sviluppatore - solo che ora è fondamentale per il suo business e lui non sa leggerlo.

Il bivio onesto

Quindi, cosa fare concretamente? Dopo molte build e qualche cicatrice, pensiamo che tutto si riduca a un bivio con due strade oneste, e la via di mezzo disonesta è l’unica risposta sbagliata.

Strada uno: imparare a mantenere il codice. Se amate questo processo abbastanza da voler approfondire, il vibe coding diventa un acceleratore legittimo invece di una trappola. Leggete ciò che scrive l’agente. Scoprite cosa significa RLS prima di pubblicare un’app che ne dipenda. Passate dagli strumenti basati solo su prompt a Cursor o Replit, dove il codice è l’interfaccia e potete sviluppare un vero senso critico. Questa strada è genuinamente fantastica - è solo una strada, con mesi di cammino, e fingere di percorrerla mentre consegnate ai clienti codice non letto è la trappola.

Strada due: mettere le parti pericolose su una base che non sia generata. Siate onesti: la vostra app è uno strumento di business - un portale clienti, un tracker, un CRM interno - e notate che l’80% di essa è esattamente l’idraulica che l’AI genera peggio: auth, permessi, reset password, accesso ai dati. Costruite questa categoria su una piattaforma no-code come Softr, dove l’idraulica è un’infrastruttura testata che configurate visivamente, e l’AI Co-Builder vi offre comunque la velocità del primo giorno. Quando volete un tocco personalizzato, il suo blocco di vibe-coding limita il codice generato a un singolo componente, così l’AI può decorare la casa senza far crollare il tetto. Il secondo giorno su questa strada è una modifica, non uno scavo archeologico - è per questo che domina la nostra classifica dei portali clienti.

Continuate a fare vibe coding per le cose divertenti senza riserve - prototipi, giocattoli, esperimenti del weekend sono esattamente ciò in cui questi strumenti eccellono. Decidete solo, prima che arrivino gli utenti reali, da che lato del bivio vi trovate. Il secondo giorno non chiede per favore.

Decidi come gestire l'app in produzione
Impara a mantenere il codice
Leggi ciò che scrive l'agente e sviluppa un giudizio reale in diversi mesi.
Usa un'infrastruttura testata
Affida auth, permessi, reset e accesso ai dati a una base no-code.
Scegli prima che arrivino utenti reali
La via di mezzo disonesta è l'unica risposta sbagliata.
Prima che arrivino utenti reali, abbiamo due strade oneste tra cui scegliere.

Confronta strumenti

Pronto a fare vibe coding?

Classifichiamo gli strumenti in base a progetti reali. Scopri dove si colloca ogni builder prima di iniziare.

Vedi le classifiche →