Este site foi feito com vibe coding? Veja qual construtor de IA o criou

Cole uma URL. Se encontrarmos um sinal confiável de Lovable, Bolt.new, Base44, v0, Replit, Bubble, Softgen, Same.new, Anything (Create.xyz), Tempo Labs ou Firebase Studio, dizemos qual é o construtor e mostramos o sinal. Pistas mais fracas não bastam, então em alguns sites ficamos calados: melhor sem nome do que com um errado. Depois verificamos o que sites assim costumam errar: chaves vazadas, cabeçalhos de segurança faltando, uma página que os buscadores veem vazia. Grátis, sem cadastro.

Grátis, sem cadastro. A análise básica faz apenas as requisições que um navegador comum faria.

Ver um relatório completo de exemplo

O que uma URL revela

Verifique você mesmo

Estas são pistas que você pode procurar à mão; o scanner só nomeia um construtor com um sinal que não pode vir de nenhum outro lugar, ou com dois independentes, então pode ficar calado onde você encontrar um.

  1. Leia o código-fonte da página

    Coloque view-source: antes da URL e procure na página (Cmd/Ctrl + F) estas strings — elas vêm dos próprios modelos, scripts e selos dos construtores. O endereço também é uma pista: *.lovable.app, *.bolt.host, *.base44.app, *.replit.app, *.bubbleapps.io e *.created.app pertencem aos próprios construtores. No Firebase Studio e no Anything, o título e a descrição do modelo só contam juntos: o scanner nomeia o construtor se os dois continuarem intactos, não só pela descrição. A imagem de prévia padrão do Bolt é só uma pista para você: qualquer página pode apontar para ela, então o scanner não nomeia o Bolt por ela.

    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
  2. Olhe os cabeçalhos de resposta

    Alguns construtores assinam as próprias respostas. O Bolt adiciona x-powered-by: Bolt.new nos endereços bolt.host; o Bubble envia x-bubble-perf e x-bubble-capacity-* até em domínios próprios. Um cache-tag terminado em :studio aponta para um backend do Firebase App Hosting chamado studio — o que o Firebase Studio cria —, mas é só uma pista para você: o scanner não nomeia um construtor por ele. Vercel, Netlify ou Cloudflare nos cabeçalhos indicam a hospedagem, não o construtor.

    curl -sI https://example.com | grep -iE '^(x-powered-by|x-bubble|cache-tag)'
  3. Confira à mão o DNS do domínio

    Conectar um domínio próprio deixa registros. Um TXT em _lovable.<domínio>, ou o endereço 185.158.133.1, apontam para o Lovable; um TXT replit-verify=, para o Replit; um CNAME para base44.onrender.com, para o Base44. O próprio scanner nomeia o Lovable pelo endereço 185.158.133.1, e o Replit só quando o replit-verify vem junto com o endereço do Replit 34.111.179.208. O TXT em _lovable e o CNAME do Base44 são só pistas para você: um registro pode sobreviver ao site para o qual foi criado, então confirme com a própria página.

    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
  4. Procure nos scripts do próprio app

    DevTools → Sources, recarregue e busque em todos os arquivos carregados de uma vez (Cmd/Ctrl + Option/Alt + F). Essas strings ficam no bundle do próprio app, então muitas vezes sobrevivem a um domínio próprio e até a uma mudança de hospedagem. A do Lovable só aparece em apps que usam Supabase ou Lovable Cloud. O bundle de um blog pode citar essas strings num post, então o scanner nomeia o Lovable ou o Base44 por elas só junto com um segundo sinal, e no Tempo procura o código que define TempoDevtools, não a palavra.

    Lovable   lovable-preview-auth
    Base44    base44SharedInstances
    Tempo     TempoDevtools
  5. Não achou nada? Isso não prova nada

    O selo pode ser escondido, o texto do modelo editado, o projeto exportado para qualquer hospedagem — e código escrito com Cursor, Claude Code ou Copilot não deixa marca de plataforma nenhuma. Depois do build de produção, código escrito à mão e código escrito por IA ficam iguais; nenhuma ferramenta consegue distingui-los honestamente.

As correções voltam para o construtor

Todo relatório termina com um prompt para um construtor com IA: o que está errado, onde está e como verificar se a correção funcionou. Cole no Lovable, Bolt, v0 ou Replit Agent — ou no Cursor.

Corrija estes problemas em myapp.bolt.host. Localize cada um antes de mudar qualquer coisa.

1. Há uma chave de API da OpenAI (sk-proj-…7fQ2) em assets/index-5b0c.js.
   Revogue-a no painel da OpenAI, mova a chamada para uma função de servidor e leia a chave de uma variável de ambiente lá.

2. O HTML bruto não tem meta description.
   Adicione uma descrição e tags Open Graph no index.html para que existam antes de o JavaScript rodar.

Ao terminar, verifique de novo: https://scanyoursite.app/pt?check=myapp.bolt.host

Cada prompt é um novo deploy

Um construtor com IA pode reescrever metade do app de uma vez. Com o Pro, percebemos cada nova versão, verificamos em minutos e só escrevemos quando algo novo quebra — no Telegram, por e-mail ou no Slack e Discord.

Ver planos

Perguntas

Dá para saber se o código foi escrito por IA?

Não — e ninguém consegue fazer isso honestamente de fora. Depois do build e da minificação para produção, código escrito à mão e código escrito por IA ficam iguais. Não damos uma “probabilidade de IA”. Só nomeamos um construtor com um sinal confiável, e mostramos qual.

Nenhum construtor encontrado — então foi feito à mão?

Não necessariamente. Um site pode ser feito com IA e não ter marca nenhuma: o selo foi escondido, o texto do modelo editado, o projeto exportado para outra hospedagem ou o código escrito com Cursor, Claude Code ou Copilot, que não deixam nada no site. Sem nome significa só isto: não encontramos um sinal confiável.

Quais construtores vocês reconhecem?

Lovable, Bolt.new, Base44, v0, Replit, Bubble, Softgen, Same.new, Anything (Create.xyz), Tempo Labs e Firebase Studio. Alguns sinais sobrevivem a um domínio próprio; outros só aparecem no endereço do próprio construtor, como *.bolt.host. No Bubble e no Replit o sinal prova a plataforma, não que a IA dela escreveu o app.

Posso verificar um site que não é meu?

Sim. A análise grátis é passiva: pede a página, os scripts, o robots.txt, o sitemap, o DNS e o certificado — o mesmo que um navegador ou robô de busca — e se identifica como ScanYourSiteBot. Verificações mais profundas, como a das tabelas do Supabase, só rodam em domínios cujo dono os verificou.

O site é meu e não quero que ele seja verificado.

Informe seu domínio em scanyoursite.app/bot. Vale na hora e não precisa de conta; a mesma página lista o que nosso robô pede e qual User-Agent ele envia.

Quanto custa?

A análise é grátis, sem cadastro. O monitoramento com uma verificação após cada deploy começa em $19 / €19 por mês para três sites.

Para vibe coders

Cole sua URL. Receba a lista em cerca de um minuto.

Cada achado vem com o que ele significa para você e como corrigir — ou com um prompt que sua ferramenta de IA pode aplicar.

Grátis, sem cadastro. A análise básica faz apenas as requisições que um navegador comum faria.