Ce site est-il vibe-codé ? Découvrez quel builder IA l'a créé
Collez une URL. Si nous trouvons un marqueur fiable de Lovable, Bolt.new, Base44, v0, Replit, Bubble, Softgen, Same.new, Anything (Create.xyz), Tempo Labs ou Firebase Studio, nous nommons le builder et montrons ce marqueur. Des indices plus faibles ne nous suffisent pas : sur certains sites, nous ne dirons rien — mieux vaut pas de nom qu'un nom faux. Puis nous vérifions ce que ces sites ratent d'habitude : clés exposées, en-têtes de sécurité manquants, une page que les moteurs de recherche voient vide. Gratuit, sans inscription.
Gratuit, sans inscription. L'analyse de base n'envoie que les requêtes qu'un navigateur ordinaire enverrait.
Ce qu'une seule URL vous apprend
- InformationAnalyse gratuite
Le builder — et le marqueur qui l'a trahi
Une adresse en lovable.app, le script du badge de Bolt, la balise generator de v0, la description de modèle de Replit, les en-têtes de réponse de Bubble : si nous trouvons un marqueur fiable — qui ne peut venir de nulle part ailleurs, ou deux marqueurs indépendants —, nous nommons le builder et montrons le marqueur vu. Des indices plus faibles ne suffisent pas seuls : nous pouvons donc nous taire là où vous repéreriez un indice à la main. Nous ne devinons pas.
- CritiqueAnalyse gratuite
Une clé secrète dans le JavaScript public
Ces builders permettent d'appeler OpenAI, Stripe ou Supabase directement depuis la page — et d'y livrer la clé secrète avec l'appel. Nous cherchons les formats de clés connus dans la page et ses scripts et montrons ce que nous trouvons, masqué, avec le fichier concerné.
- CritiquePro
Des tables Supabase lisibles par n'importe qui
La plupart des apps Lovable et beaucoup d'apps Bolt tournent sur Supabase, où c'est Row Level Security qui garde les tables privées. Sur un domaine dont vous avez prouvé la propriété, nous comptons combien de lignes chaque table renvoie à la clé publique — sans jamais lire leur contenu.
- MoyenAnalyse gratuite
Des en-têtes de sécurité que personne n'a ajoutés
La plupart des sites créés avec l'IA tournent avec ce que l'hébergeur envoie par défaut. Nous listons les protections manquantes : Content-Security-Policy, HSTS, protection contre le clickjacking.
- FaibleAnalyse gratuite
Les moteurs de recherche reçoivent une coquille vide
Beaucoup de builders produisent une application monopage : un <div id="root"> vide tant que JavaScript n'a pas tourné. Nous vérifions le titre, la description et l'aperçu de lien dans le HTML brut comme dans la page rendue par un vrai navigateur.
Vérifiez vous-même
Voici des indices à chercher à la main ; le scanner ne nomme un builder que sur un marqueur qui ne peut venir de nulle part ailleurs, ou sur deux marqueurs indépendants, il peut donc se taire là où vous en trouvez un.
Lisez le code source de la page
Ajoutez view-source: devant l'URL et cherchez dans la page (Cmd/Ctrl + F) ces chaînes — elles viennent des modèles, scripts et badges des builders eux-mêmes. L'adresse est aussi un indice : *.lovable.app, *.bolt.host, *.base44.app, *.replit.app, *.bubbleapps.io et *.created.app appartiennent aux builders eux-mêmes. Pour Firebase Studio et Anything, le titre et la description du modèle ne comptent qu'ensemble : le scanner nomme le builder si les deux sont restés intacts, pas sur la seule description. L'image d'aperçu par défaut de Bolt n'est qu'un indice pour vous : n'importe quelle page peut la reprendre par son adresse, donc le scanner ne nomme pas Bolt sur cette base.
view-source:https://example.com Lovable /__l5e/ Lovable gpt-engineer-file-uploads Bolt bolt.new/badge.js Bolt bolt.new/static/og_default.png v0 name="generator" content="v0.app" Replit replit-dev-banner.js Replit replit-pill Base44 base44_access_token Bubble bubble_session_uid Firebase <title>Firebase Studio App</title> Firebase Generated by Firebase Studio Anything <title>Anything App</title> Anything Created with Anything Softgen cdn.softgen.ai/script.js Same same-runtime Tempo tempo-public-assets/error-handling.js
Regardez les en-têtes de réponse
Certains builders signent leurs réponses. Bolt ajoute x-powered-by: Bolt.new sur ses adresses bolt.host ; Bubble envoie x-bubble-perf et x-bubble-capacity-* même sur les domaines personnalisés. Un cache-tag qui finit par :studio désigne un backend Firebase App Hosting nommé studio — celui que crée Firebase Studio —, mais ce n'est qu'un indice pour vous : le scanner ne nomme pas de builder sur cette base. Vercel, Netlify ou Cloudflare dans les en-têtes désignent l'hébergeur, pas le builder.
curl -sI https://example.com | grep -iE '^(x-powered-by|x-bubble|cache-tag)'
Vérifiez le DNS du domaine à la main
Connecter un domaine personnalisé laisse des enregistrements. Un TXT sur _lovable.<domaine>, ou l'adresse 185.158.133.1, renvoient à Lovable ; un TXT replit-verify=, à Replit ; un CNAME vers base44.onrender.com, à Base44. Le scanner lui-même nomme Lovable sur l'adresse 185.158.133.1, et Replit seulement quand replit-verify va de pair avec l'adresse de Replit 34.111.179.208. Le TXT sur _lovable et le CNAME vers Base44 ne sont que des indices pour vous : un enregistrement peut survivre au site pour lequel il a été créé, confrontez-le donc à la page elle-même.
dig +short TXT _lovable.example.com dig +short A example.com dig +short TXT example.com | grep replit-verify dig +short CNAME www.example.com
Cherchez dans les scripts de l'app
DevTools → Sources, rechargez, puis cherchez dans tous les fichiers chargés d'un coup (Cmd/Ctrl + Option/Alt + F). Ces chaînes sont dans le bundle de l'app elle-même, donc elles survivent souvent à un domaine personnalisé, voire à un changement d'hébergeur. Celle de Lovable n'apparaît que dans les apps qui utilisent Supabase ou Lovable Cloud. Le bundle d'un blog peut citer ces chaînes dans un article : le scanner ne nomme donc Lovable ou Base44 sur elles qu'avec un second marqueur, et pour Tempo il cherche le code qui définit TempoDevtools, pas le mot.
Lovable lovable-preview-auth Base44 base44SharedInstances Tempo TempoDevtools
Rien trouvé ? Cela ne prouve rien
Un badge se masque, un texte de modèle se modifie, un projet s'exporte vers n'importe quel hébergeur — et le code écrit avec Cursor, Claude Code ou Copilot ne laisse aucune trace de plateforme. Une fois compilés pour la production, le code écrit à la main et celui écrit par l'IA se ressemblent ; aucun outil ne peut honnêtement les distinguer.
Les correctifs repartent dans le builder
Chaque rapport se termine par un prompt pour un builder IA : ce qui ne va pas, où, et comment vérifier que le correctif a marché. Collez-le dans Lovable, Bolt, v0 ou Replit Agent — ou dans Cursor.
Corrige ces problèmes sur myapp.bolt.host. Localise chacun avant de modifier quoi que ce soit. 1. Une clé d'API OpenAI (sk-proj-…7fQ2) se trouve dans assets/index-5b0c.js. Révoque-la dans le tableau de bord OpenAI, déplace l'appel dans une fonction serveur et lis la clé depuis une variable d'environnement à cet endroit. 2. Le HTML brut n'a pas de meta description. Ajoute une description et des balises Open Graph dans index.html pour qu'elles existent avant l'exécution de JavaScript. Une fois terminé, revérifie : https://scanyoursite.app/fr?check=myapp.bolt.host
Chaque prompt est un nouveau déploiement
Un builder IA peut réécrire la moitié de l'app d'un coup. Avec Pro, nous repérons chaque nouvelle version, la vérifions en quelques minutes et ne vous écrivons que si quelque chose de nouveau casse — sur Telegram, par e-mail ou dans Slack et Discord.
Voir les offresQuestions
Pouvez-vous dire si le code a été écrit par une IA ?
Non — et personne ne peut honnêtement le faire de l'extérieur. Une fois compilés et minifiés pour la production, le code écrit à la main et celui écrit par l'IA se ressemblent. Nous ne donnons pas de « probabilité d'IA ». Nous ne nommons un builder que sur un marqueur fiable, et nous vous montrons lequel.
Aucun builder trouvé — le site a donc été fait à la main ?
Pas forcément. Un site peut être fait avec l'IA sans porter la moindre empreinte : badge masqué, texte du modèle modifié, projet exporté vers un autre hébergeur, ou code écrit avec Cursor, Claude Code ou Copilot, qui ne laissent rien sur le site. Pas de nom signifie seulement que nous n'avons pas trouvé de marqueur fiable.
Quels builders reconnaissez-vous ?
Lovable, Bolt.new, Base44, v0, Replit, Bubble, Softgen, Same.new, Anything (Create.xyz), Tempo Labs et Firebase Studio. Certains marqueurs survivent à un domaine personnalisé ; d'autres n'apparaissent que sur l'adresse du builder, comme *.bolt.host. Pour Bubble et Replit, un marqueur prouve la plateforme, pas que son IA a écrit l'app.
Puis-je vérifier un site qui n'est pas le mien ?
Oui. L'analyse gratuite est passive : elle demande la page, ses scripts, robots.txt, le sitemap, le DNS et le certificat — ce que récupère un navigateur ou un robot d'indexation — et s'identifie comme ScanYourSiteBot. Les sondes plus poussées, comme la vérification des tables Supabase, ne tournent que sur les domaines dont le propriétaire a prouvé la propriété.
C'est mon site et je ne veux pas qu'il soit vérifié.
Saisissez votre domaine sur scanyoursite.app/bot. C'est immédiat et sans compte ; la même page indique ce que notre bot demande et le User-Agent qu'il envoie.
Combien ça coûte ?
L'analyse est gratuite, sans inscription. La surveillance avec une vérification après chaque déploiement commence à $19 / €19 par mois pour trois sites.
Collez votre URL. Recevez la liste en une minute environ.
Chaque constat explique ce qu'il signifie pour vous et comment le corriger — ou vous donne un prompt que votre outil de code IA peut appliquer.
Gratuit, sans inscription. L'analyse de base n'envoie que les requêtes qu'un navigateur ordinaire enverrait.