La tua app è viva. E cresce più in fretta di quanto tu riesca a capirla.
Hai descritto l'idea, l'IA ha scritto il codice, l'app funziona e qualcuno la usa già. Poi qualcosa si rompe — e scopri che devi correggere codice che non hai mai scritto. Noi lo guardiamo dall'esterno e ti diamo una ricevuta: cosa è confermato, cosa è guasto e cosa nessuno ha controllato.
«Non riesco a correggerlo perché non ho scritto questo codice» — e ogni piccolo errore diventa una serata di ipotesi.
Le chiavi del tuo database stanno da qualche parte nel codice della pagina e non sai con certezza se sia sicuro.
Dopo ogni deploy non sei sicuro che quello che funzionava ieri funzioni ancora oggi.
Come funziona
01
Un controllo dall'esterno
Guardiamo l'app come la vede un visitatore qualsiasi: certificato, raggiungibilità, codice pubblico della pagina, marcatore di build. Non rompiamo nulla, non cambiamo nulla e non entriamo mai nel tuo codice.
02
Una ricevuta con tre stati
Ogni riga riceve uno di tre verdetti — confermato, guasto, non stabilito — e l'indirizzo della sua prova. Un punteggio complessivo non esiste di proposito: nasconderebbe proprio ciò che devi vedere.
03
Un prompt pronto per la tua IA
Ogni riga guasta porta un testo che incolli in Cursor, Lovable o Claude Code — e il tuo editor lo sistema. Non serve avere uno sviluppatore tutto tuo.
04
Scadenza onesta
Fai un deploy — la ricevuta non finge di essere ancora verificata. Passa a «in attesa di nuovo controllo» finché non guardiamo di nuovo. Una vecchia ricevuta che resta verde in silenzio è peggio di nessuna ricevuta.
Che aspetto ha una riga della ricevuta
Queste sono righe reali prodotte dal controllo — solo su un'app inventata.
secret-scan:tua-app.exampleguasto
Nel codice pubblico della pagina è stata trovata una chiave di servizio Supabase. Quella chiave aggira tutte le regole di accesso al database: chi la trova legge e modifica tutti i tuoi dati.
Prompt pronto per il tuo editor IA
Nel bundle pubblico della mia web app è stato trovato un segreto. Trovalo nel codice frontend, rimuovilo dal bundle client, sposta tutte le operazioni che lo usano sul lato server (API route o edge function), poi revoca la chiave e generane una nuova presso il provider. Mostra il diff e spiega cosa resta ora sul client.
secret-scan:altra-app.examplenon stabilito
È stata trovata una chiave pubblica Supabase — è normale, esiste per essere pubblica. Ma se le tue tabelle siano chiuse dalle regole di accesso, un controllo dall'esterno non lo vede. Quindi: non stabilito, non «tutto bene».
tls:tua-app.exampleconfermato
Il certificato del dominio è valido e non scaduto alla data del controllo.
Una chiave trovata non la citiamo mai — né nel report né in una email. Nominiamo la classe del ritrovamento e dove si trova, perché la ricevuta non diventi il secondo punto di fuga.
Prove vive, non promesse
Prima di fidarti di qualcuno, guarda cosa fa davvero questo sistema. Entrambe le pagine sono aperte e funzionano adesso.
Contrassegni legati a commit precisi — questo sito compreso. Se il codice si muove, il contrassegno torna da solo a «in attesa di nuovo controllo».
Cosa non promettiamo
È un'autovalutazione rispetto ai controlli che eseguiamo davvero — non un audit e non una garanzia.
«Non stabilito» non significa «tutto bene» né «tutto male». È un limite dichiarato: questo non l'abbiamo controllato, o non ci siamo riusciti.
Un punteggio complessivo non esiste. Un pallino verde sopra tre stati diversi è esattamente ciò che ci rifiutiamo di produrre.
Guardiamo dall'esterno. Ciò che si vede solo dall'interno del tuo codice un controllo esterno non lo vedrà — e lo dice apertamente invece di tacere.
Vuoi una ricevuta così per la tua app?
Siamo in beta chiusa e prendiamo le app una alla volta. Non c'è ancora un canale stabile per gli ordini — e non disegniamo un pulsante dietro cui non c'è nessuno.
Prezzo
prezzo non stabilito
Canale per gli ordini
canale non ancora aperto — sarà indicato separatamente