import type { Metadata } from "next"; import { Breadcrumb } from "@/app/components/Breadcrumb"; import { pageTop, primaryButton, textLinkDark, } from "@/app/components/button-styles"; import HoverPrefetchLink from "@/app/components/HoverPrefetchLink"; import WhatsAppLink from "@/app/components/WhatsAppLink"; import { safeJsonLd } from "@/lib/jsonld"; import { buildBreadcrumbList, buildPageSocialMetadata } from "@/lib/seo"; import { siteUrl } from "@/lib/site-content"; import { AI_REVIEW_SUBJECT } from "@/lib/whatsapp"; const pageUrl = `${siteUrl}/ia`; /** Curto de propósito: o template de app/layout.tsx acrescenta " | Evandro.dev.br" e o conjunto cabe em 44 caracteres. */ const pageTitle = "Revisão de app feito com IA"; const pageDescription = "Fez um app com Lovable, Bolt ou Replit? Eu reviso as falhas de acesso a dados, separo o que aproveitar do que refazer e faço o orçamento para a produção."; /** Entra na frase "Quero conversar sobre {assunto}." da mensagem do WhatsApp (a mesma do botão flutuante em /ia). */ const WHATSAPP_SERVICE = AI_REVIEW_SUBJECT; export const metadata: Metadata = { title: pageTitle, description: pageDescription, ...buildPageSocialMetadata({ url: pageUrl, title: pageTitle, description: pageDescription, type: "website", }), }; /** O que a pessoa recebe ao contratar a revisão. Sem prazo e sem preço: isso se combina na conversa. */ const DELIVERABLES = [ { title: "As falhas de acesso a dados", description: "Testo se uma pessoa consegue ver ou alterar os dados de outra e mostro o que precisa de correção.", }, { title: "O que dá para aproveitar", description: "O que já está pronto e pode seguir no projeto.", }, { title: "O que é melhor refazer", description: "As partes que não se sustentam em uso real, com o motivo de cada uma.", }, { title: "Um orçamento para pôr em produção", description: "O que falta para o app atender clientes de verdade, com o orçamento por escrito.", }, ]; /** * Como a revisão anda, em três passos, no cartão do hero. Só o que o resto da página já diz: a conversa pelo WhatsApp * (sem enviar senhas), o teste e a separação do que aproveitar do que refazer, e o orçamento por escrito. Sem prazo e * sem preço: isso se combina na conversa. */ const STEPS = [ { title: "Conversa pelo WhatsApp", description: "Você conta o que o app faz e o que ele precisa fazer. Não envie senhas nem acessos por mensagem.", }, { title: "Teste e avaliação", description: "Testo se uma pessoa consegue ver ou alterar os dados de outra e separo o que dá para aproveitar do que é melhor refazer.", }, { title: "Relatório e orçamento", description: "Você recebe o que precisa de correção e o orçamento por escrito para pôr o app em produção.", }, ]; /** * Três achados de EXEMPLO do relatório, para mostrar como ele é organizado: a falha, a gravidade e a correção sugerida. * São ilustrativos: não são de nenhum cliente nem de um app real, e a página os rotula assim. */ const REPORT_EXAMPLES = [ { flaw: "Um usuário consegue abrir os dados de outro trocando o número no endereço da página.", severity: "Alta", fix: "Conferir no servidor se cada registro pertence a quem está logado e testar com contas de empresas diferentes.", }, { flaw: "A chave de acesso ao banco de dados está no código que o navegador baixa.", severity: "Alta", fix: "Levar a chave para o servidor, trocar a que ficou exposta e liberar no banco só o que cada perfil precisa.", }, { flaw: "Não há cópia de segurança com restauração testada.", severity: "Média", fix: "Ligar as cópias automáticas, separar o banco de testes do de produção e ensaiar a restauração.", }, ]; const RESPONSIBILITIES = [ { title: "Quem pode acessar cada dado?", description: "Login não basta. Permissões precisam ser verificadas no servidor e testadas entre usuários, empresas e perfis diferentes.", }, { title: "Como recuperar a operação?", description: "Ambientes separados, acesso restrito à produção e backups com restauração testada reduzem o impacto de uma alteração errada.", }, { title: "Quem valida antes de publicar?", description: "Código gerado também passa por revisão, testes e avaliação de dependências. O escopo inclui manutenção, custos e riscos de operação.", }, ]; /** Três episódios de 2025, resumidos. Cada um traz o que foi relatado, o que não foi provado e o cuidado técnico. */ const INCIDENTS = [ { title: "Lovable: dados expostos em aplicações criadas na plataforma", summary: "Em maio de 2025, a Semafor noticiou uma análise que encontrou 170 de 1.645 aplicações com acesso indevido a informações, incluindo dados de usuários e chaves de API, ligado à configuração de acesso dos bancos conectados. O fornecedor contesta que a falha seja da plataforma e lembra que os clientes respondem por seus dados. O relato não comprova roubo em todas essas aplicações.", care: "testar se uma pessoa consegue ler ou alterar dados de outra, em vez de tratar a tela de login como prova de segurança.", links: [ { href: "https://www.semafor.com/article/05/29/2025/the-hottest-new-vibe-coding-startup-lovable-is-a-sitting-duck-for-hackers", label: "Reportagem da Semafor (em inglês)", }, { href: "https://nvd.nist.gov/vuln/detail/CVE-2025-48757", label: "Registro e contestação no NVD", }, ], }, { title: "Replit: um agente apagou dados de uma aplicação", summary: "Em julho de 2025, o cofundador da SaaStr relatou que um agente apagou dados durante a construção de uma aplicação, e as alterações de desenvolvimento podiam afetar a produção. A Replit reconheceu o episódio, informou que o banco foi recuperado por rollback e anunciou a separação entre bancos de desenvolvimento e produção por padrão. Houve exclusão e recuperação, não roubo de informações.", care: "limitar permissões de agentes, separar ambientes e testar a recuperação antes de depender dela.", links: [ { href: "https://replit.com/blog/doubling-down-on-our-commitment-to-secure-vibe-coding", label: "Relato e medidas da Replit (29/07/2025)", }, ], }, { title: "Base44: aplicações privadas com falha de acesso", summary: "Em julho de 2025, pesquisadores da Wiz demonstraram uma falha que permitia acesso não autorizado a aplicações privadas do Base44. Ela estava na camada compartilhada de autenticação da plataforma, não em erro de um usuário iniciante. A Wix corrigiu em menos de 24 horas e informou não ter encontrado exploração maliciosa.", care: "avaliar também o fornecedor e as permissões efetivas das integrações, além do código da aplicação.", links: [ { href: "https://www.wiz.io/blog/critical-vulnerability-base44", label: "Pesquisa da Wiz e resposta da Wix (29/07/2025)", }, ], }, ]; export default function AiPage() { const jsonLd = { "@context": "https://schema.org", "@graph": [ buildBreadcrumbList(pageUrl, [ ["Início", siteUrl], ["Revisão de app feito com IA", pageUrl], ] as const), ], }; return (

IA no desenvolvimento

Seu app feito com IA está pronto para receber clientes? Eu testo antes deles.

A IA permite testar ideias e construir protótipos mesmo sem experiência em programação. Quando o sistema passa a cuidar de clientes, dinheiro ou dados pessoais, alguém precisa avaliar o que foi gerado e validar como ele se comporta fora da demonstração. Revisão para apps criados com Lovable, Bolt, Replit e ferramentas parecidas.

Pedir a revisão do meu app Ver como a revisão funciona {/* Link secundário para os cases: mostram como eu entrego, não são revisões de app feito com IA. */} Ver projetos entregues

Como funciona em 3 passos

    {STEPS.map((step, index) => (
  1. {step.title}. {" "} {step.description}
  2. ))}

O que você recebe na revisão

    {DELIVERABLES.map((item, index) => (
  1. {String(index + 1).padStart(2, "0")}

    {item.title}

    {item.description}

  2. ))}

Começa por uma conversa pelo WhatsApp, para eu entender o app e o que ele precisa fazer. Não envie senhas nem acessos por mensagem.

Modelo do relatório

Cada falha encontrada entra no relatório com a gravidade e a correção sugerida. Os três achados abaixo são{" "} exemplos ilustrativos de como ele é organizado: não são de nenhum cliente nem de um app real.

    {REPORT_EXAMPLES.map((example, index) => (
  1. Exemplo ilustrativo {String(index + 1).padStart(2, "0")}

    Falha
    {example.flaw}
    Gravidade
    {example.severity}
    Correção sugerida
    {example.fix}
  2. ))}

Se a IA cria um sistema, por que contratar um desenvolvedor?

Você contrata engenharia para transformar as regras do seu negócio em um sistema que possa ser testado, operado e mantido. A IA pode fazer parte desse trabalho. Ela não dispensa decisões sobre arquitetura, segurança e responsabilidade pelos dados.

{RESPONSIBILITIES.map((item) => (

{item.title}

{item.description}

))}
{/* Recolhido: as notícias sustentam a oferta, mas não são o que a pessoa veio ver. */}

O que casos documentados ensinam

São episódios de 2025, não avaliações atuais das plataformas. Eles mostram riscos de configuração, permissões e operação; não provam que todo sistema feito com IA seja inseguro ou que um profissional elimine qualquer risco.

{INCIDENTS.map((incident) => (

{incident.title}

{incident.summary}

O cuidado técnico: {incident.care}

))}

E a LGPD?

Usar IA não afasta as obrigações de proteção de dados. A ANPD exige medidas técnicas e administrativas também de agentes de pequeno porte e esclarece que as flexibilizações não os isentam das demais obrigações da LGPD, como bases legais e direitos dos titulares.

O trabalho técnico inclui controles de acesso, coleta limitada ao necessário e rotinas de retenção e exclusão. Conformidade depende também dos processos da empresa e de orientação jurídica; contratar desenvolvimento não equivale a uma certificação de adequação.

ANPD: Resolução nº 2/2022, arts. 6º, 12 e 13

Já começou com IA? Podemos partir daí.

Seu protótipo ajuda a explicar a ideia. Antes de propor uma reconstrução, avalio o que pode ser aproveitado, quais riscos precisam de correção e o que falta para atender usuários em produção.

Você não precisa saber programar para conduzir o negócio. Precisa entender o que está contratando, acompanhar a entrega e ter clareza sobre quem cuida de cada parte do sistema.

Avaliar meu projeto
); }