Entendendo o Deploy: O Que Acontece Depois Que Você Clica em "Lançar"
TL;DR: Quando você clica em 'lançar' em um construtor de apps com IA, seis coisas acontecem nos bastidores: seu código é compilado em artefatos estáticos e server-side, esses artefatos são enviados para uma CDN e para infraestrutura serverless, o DNS do seu domínio é apontado para essa infraestrutura, certificados SSL são emitidos, seu banco de dados é provisionado e populado, e as variáveis de ambiente (chaves de API, segredos) são carregadas. Depois disso, monitoramento e logs começam a coletar dados. Entender essa camada importa porque o deploy é onde a maioria dos fundadores não-desenvolvedores encontra problemas que não consegue depurar — propagação de DNS, variáveis de ambiente incompatíveis, falhas de build. Este guia explica cada fase em linguagem simples, o que cada plataforma faz de diferente e os fundamentos operacionais pós-lançamento que separam produtos que funcionam de produtos quebrados.
Introdução
Para fundadores não-desenvolvedores lançando produtos com construtores de apps com IA, 'clicar em lançar' parece mágico — e na maioria das vezes, funciona. Mas quando não funciona, os problemas moram em uma camada que a maioria dos fundadores nunca aprendeu. Propagação de DNS. Emissão de certificado SSL. Pipelines de build. Variáveis de ambiente. Invalidação de cache da CDN. Só o vocabulário já intimida, e o construtor com IA nem sempre explica o que está falhando.
Este guia desmistifica o deploy em linguagem simples. O que realmente acontece quando você clica em lançar, o que cada componente faz, o que cada plataforma trata de forma diferente e quais fundamentos operacionais pós-lançamento mantêm seu app funcionando. Ao final, você vai entender a camada de deploy bem o suficiente para depurar os problemas mais comuns e fazer as perguntas certas quando algo quebrar.
A versão de 30 segundos
Quando você clica em lançar, a plataforma faz seis coisas.
- Compila seu código — Transforma seu código-fonte nos arquivos que realmente rodam (HTML, bundles de JS, funções de servidor)
- Envia para a infraestrutura — Manda esses arquivos para servidores ao redor do mundo (CDN para o estático, funções serverless para o dinâmico)
- Configura o DNS — Aponta seu domínio (suamarca.com) para essa infraestrutura
- Emite o SSL — Garante o cadeado verde para que a URL seja https:// e não http://
- Provisiona o banco de dados — Cria o banco de dados de produção e aplica o schema
- Carrega as variáveis de ambiente — Conecta com Stripe, OpenAI, Resend e outros serviços usando chaves de API
Cada uma dessas etapas pode falhar de forma independente. Entender qual delas está falhando é como você depura problemas de deploy.
Fase 1: O build
Seu código-fonte não é o que roda em produção. A fase de build converte o código-fonte em artefatos executáveis.
O que acontece durante o build
- Transpilação de JavaScript/TypeScript — Código moderno (TypeScript, JSX, ES2024) é compilado para um JavaScript mais antigo que todos os navegadores conseguem rodar
- Bundling — Centenas de arquivos-fonte são combinados em alguns bundles otimizados para carregamento mais rápido
- Minificação — O código é comprimido (nomes de variáveis encurtados, espaços em branco removidos) para reduzir o tamanho dos arquivos
- Tree shaking — Código não utilizado é eliminado dos bundles
- Geração de páginas estáticas — Páginas que não precisam de dados específicos do usuário podem ser pré-renderizadas como HTML
- Otimização de assets — Imagens são comprimidas; o CSS é limpo de estilos não utilizados
Por que builds falham
- Dependência faltando — Seu código referencia um pacote que não foi instalado
- Erro de TypeScript — Incompatibilidades de tipo que o build detecta mesmo que o preview tenha rodado bem
- Falta de memória — Projetos grandes excedem o limite de memória do servidor de build
- Variável de ambiente faltando referenciada em tempo de build — Algumas variáveis precisam existir durante o build, não só em tempo de execução
- Incompatibilidade de versão — A versão do Node.js ou do npm difere entre preview e build
Quando um build falha, o construtor de apps com IA normalmente exibe os logs de erro. Ler esses logs é a primeira habilidade de depuração. Os erros costumam ser mais legíveis do que parecem — 'Cannot find module X' geralmente significa que X é referenciado mas não está instalado; 'Type Y is not assignable' significa uma incompatibilidade de tipo no TypeScript.
Fase 2: Envio para a infraestrutura
Apps web modernos rodam em dois tipos de infraestrutura, muitas vezes juntos.
Arquivos estáticos em uma CDN
Seu HTML, CSS, bundles de JavaScript e imagens vão para uma CDN (Content Delivery Network). Uma CDN tem servidores ao redor do mundo — a Cloudflare tem mais de 300 localizações, o AWS CloudFront tem mais de 600 — e o servidor mais próximo de cada usuário entrega os arquivos. É por isso que seu app carrega em milissegundos, esteja o usuário em São Paulo ou em Singapura.
Código server-side em funções serverless ou edge
Código que precisa rodar sob demanda (endpoints de API, consultas ao banco de dados, chamadas de IA) é implantado como funções serverless. Elas sobem quando um usuário faz uma requisição, rodam por algumas centenas de milissegundos e depois desaparecem. Você paga apenas pelo tempo de execução, não por servidores ociosos. Edge functions são um subconjunto que roda nas localizações de borda da CDN para latência ultrabaixa.
Hospedagem do banco de dados
Bancos de dados precisam de armazenamento persistente e não combinam bem com serverless. Eles normalmente vivem em serviços gerenciados dedicados — Supabase Postgres, Neon, PlanetScale, MongoDB Atlas, AWS RDS. Seu construtor de apps com IA provisiona um automaticamente ou conecta com um que você especificar.
Fase 3: DNS — apontando seu domínio para o lugar certo
O DNS (Domain Name System) é como 'suamarca.com' vira 'o servidor real que entrega seu app'. A configuração de DNS diz à internet onde encontrar seu app.
Os registros que importam
- Registro A — Aponta seu domínio raiz (suamarca.com) para um endereço IP
- Registro CNAME — Aponta um subdomínio (app.suamarca.com) para outro domínio (cname.vercel-dns.com)
- Registro MX — Diz à internet quais servidores tratam os e-mails do seu domínio
- Registro TXT — Armazena texto arbitrário, usado para autenticação de e-mail SPF/DKIM/DMARC e verificação de domínio
Propagação de DNS: a pegadinha mais comum
Quando você altera registros de DNS, a mudança leva tempo para se espalhar pela internet — de 5 minutos a 48 horas, dependendo das configurações de cache. Durante a propagação, alguns usuários veem a versão antiga (ou nenhuma versão) enquanto outros veem a nova. Isso é normal e não é sinal de que algo está quebrado.
Ferramentas como whatsmydns.net permitem verificar a propagação em servidores DNS globais. Se sua mudança não está propagando depois de 24 horas, geralmente há um problema de TTL (time-to-live) ou um registro incorreto. O construtor de apps com IA normalmente fornece os registros exatos a adicionar; copiá-los exatamente evita a maioria dos problemas.
Fase 4: SSL — conquistando o cadeado verde
Navegadores modernos alertam os usuários sobre sites sem HTTPS. Certificados SSL (tecnicamente certificados TLS) fazem seu site carregar via https:// em vez de http://. Sem SSL, os navegadores exibem avisos, os mecanismos de busca penalizam o ranqueamento e os clientes não confiam em você.
SSL automático via Let's Encrypt
Todo grande construtor de apps com IA emite certificados SSL automaticamente via Let's Encrypt — uma autoridade certificadora gratuita e automatizada. O processo: a plataforma prova ao Let's Encrypt que você controla o domínio (via verificação por DNS ou HTTP), o Let's Encrypt emite um certificado, a plataforma o instala. Os certificados são renovados automaticamente a cada 90 dias. Na maior parte do tempo, você não precisa pensar nisso.
Quando o SSL falha
- DNS ainda não propagado — A emissão do SSL exige que o domínio resolva para os servidores da plataforma
- Tipo de registro DNS errado — Confusão entre registro A e CNAME quebra a verificação
- Registros DNS apontando para outro lugar — Registros antigos apontando para um host anterior
- Registro CAA bloqueando o Let's Encrypt — Alguns domínios têm registros CAA que restringem quais autoridades podem emitir certificados
A emissão de SSL é automática, mas não instantânea. Depois que o DNS resolve corretamente, o SSL geralmente leva de 5 a 60 minutos.
Fase 5: Provisionamento do banco de dados
Seu banco de dados de preview (usado durante o desenvolvimento) é separado do banco de dados de produção (usado após o lançamento). Dados de produção são dados reais de clientes; você não quer experimentos de desenvolvimento mexendo neles.
O que acontece durante o provisionamento do banco de dados
- Banco de dados de produção criado — Geralmente em um serviço gerenciado (Supabase, Neon, MongoDB Atlas)
- Migração de schema executada — Tabelas, colunas, índices e relacionamentos são criados
- Políticas de row-level security aplicadas — Regras de acesso que determinam quem pode ler/escrever o quê
- Dados iniciais carregados (opcional) — Categorias padrão, usuário admin, dados de configuração
- Connection string gerada — A URL que o app usa para se conectar ao banco de dados
Preview vs produção: o padrão de dois bancos de dados
A maioria das plataformas mantém preview e produção como bancos de dados separados. Mudanças no preview não afetam a produção. Migrar mudanças de schema do preview para a produção geralmente exige um passo explícito de 'deploy das migrações'. Isso é segurança intencional — sem isso, um erro de schema em desenvolvimento corromperia dados reais de clientes.
Fase 6: Variáveis de ambiente e segredos
Seu app se conecta a serviços externos — Stripe, OpenAI, Resend, AWS — usando chaves de API. São segredos sensíveis que nunca deveriam aparecer no código-fonte. Variáveis de ambiente são a forma de colocar segredos no app em execução sem que sejam commitados no GitHub.
Onde as variáveis de ambiente vivem
- Ambiente de preview — Chaves de teste (modo de teste do Stripe, chave dev da OpenAI, domínio de teste do Resend)
- Ambiente de produção — Chaves reais (modo live do Stripe, chave de produção da OpenAI, domínio de produção do Resend)
- Tempo de build vs tempo de execução — Algumas variáveis são embutidas no build; outras são lidas quando o app roda
Por que erros de variáveis de ambiente são comuns
- Chaves de teste vazam para produção — Cobranças no Stripe falham porque o app de produção usa chaves de teste
- Chaves de produção vazam para o preview — Dados reais de clientes são enviados durante testes
- Variáveis faltando no lançamento — O app roda, mas uma funcionalidade-chave (pagamentos, e-mail) falha silenciosamente
- Erros de digitação nos nomes das variáveis — STRIPE_SECRET_KEY vs STRIPE_SECRETE_KEY quebra a integração
- Esquecer de atualizar chaves após a rotação — Chaves antigas permanecem na plataforma depois que você gerou novas
A maioria das plataformas tem gerenciamento separado de variáveis de ambiente para preview e produção. A disciplina: verifique os dois antes do lançamento, e rotacione qualquer chave que tenha aparecido em screenshots ou sido compartilhada em chats.
O que cada grande construtor de apps com IA faz de diferente
| Plataforma | Modelo de Hospedagem | Configuração de DNS | Banco de Dados |
|---|---|---|---|
| Greta | Hospedagem integrada (infraestrutura da plataforma) | Domínio personalizado via dashboard | Multi-backend (Supabase, MongoDB, AWS) |
| Lovable | Hospedagem integrada | Domínio personalizado via dashboard | Supabase por padrão |
| Bolt.new | Deploy via Netlify/Cloudflare | Domínio personalizado via Netlify | Supabase por padrão |
| v0 by Vercel | Deploy via Vercel | Domínio personalizado via Vercel | Vercel Postgres ou externo |
| Replit | Replit Deployments | Domínio personalizado via Replit | Banco integrado ao Replit |
A escolha da plataforma afeta a flexibilidade. Hospedagem integrada (Greta, Lovable) é mais simples — um único fluxo de trabalho, sem contas separadas. Hospedagem acoplada a CDN (Bolt → Netlify/Cloudflare, v0 → Vercel) dá mais flexibilidade, mas exige entender a camada de deploy.
Depois do lançamento: a camada operacional que a maioria dos fundadores ignora
Clicar em lançar é o começo, não o fim. Seis preocupações operacionais importam desde o primeiro dia.
Monitoramento e logs
- Rastreamento de erros — Sentry, Highlight ou logs de erro integrados à plataforma capturam exceções antes que os usuários reclamem
- Monitoramento de performance — Tempos de carregamento de página, tempos de resposta de API, tempos de consulta ao banco de dados
- Monitoramento de usuários reais (RUM) — Como usuários reais estão vivenciando o app em diferentes regiões
- Logs de servidor — Registros do que o backend fez e quando (úteis para depuração)
Alertas
- Monitoramento de uptime — UptimeRobot, Better Uptime, Pingdom. Verifica seu app a cada minuto e alerta quando ele cai.
- Alertas de taxa de erros — Um pico de erros dispara uma notificação antes que os usuários percebam em massa
- Alertas de custo — Alertas de orçamento na plataforma e no gasto com APIs de IA evitam contas fora de controle
- Alertas de banco de dados — Banco de dados no plano gratuito se aproximando dos limites dispara um alerta
Backups
- Backups automáticos do banco de dados — A maioria dos bancos gerenciados inclui backups diários automáticos
- Retenção de backups — Por quanto tempo os backups são mantidos (7 dias, 30 dias, mais tempo em planos pagos)
- Recuperação point-in-time — Restaurar para qualquer momento dos últimos N dias, não apenas snapshots diários
- Backup fora da plataforma — Para apps críticos, exportações periódicas para seu próprio armazenamento adicionam recuperação de desastres
Estratégia de rollback
Todo deploy pode introduzir bugs. Saber fazer rollback é sobrevivência operacional.
- Histórico de deploys — A maioria das plataformas mostra os deploys recentes com timestamps e mudanças
- Rollback com um clique — Promover um deploy anterior de volta para produção
- Rollback de migração de banco de dados — Mais complexo; nem sempre reversível. Cuidado com mudanças destrutivas de schema.
- Plano de comunicação — Avise os usuários quando o rollback acontecer; assuma que alguns dados podem não ter sido preservados
Página de status
- Página de status pública — status.suamarca.com mostra se os serviços estão no ar. Constrói confiança durante incidentes.
- Modelo de comunicação de incidentes — Templates pré-escritos para os tipos comuns de incidente
- Notificações para inscritos — Usuários podem se inscrever para receber atualizações de status por e-mail/SMS
BetterStack, Statuspage e Instatus oferecem páginas de status hospedadas com planos gratuitos razoáveis.
Resposta a incidentes
- Rotação de plantão — Se você é solo, aceite que está sempre de plantão; se tem equipe, alterne semanalmente
- Definições de severidade — SEV1 (todo mundo acorda), SEV2 (resolver em horas), SEV3 (resolver no próximo dia útil)
- Revisões pós-incidente — Depois da resolução, documente o que aconteceu e o que mudou
- Comunicação com clientes — Envie e-mails proativamente aos clientes quando incidentes os afetarem
Problemas Comuns de Deploy e Como Depurar
- Domínio não resolvendo — Verifique se os registros de DNS correspondem exatamente ao que a plataforma pediu; verifique a propagação via whatsmydns.net
- SSL não emitido — Geralmente é um problema de DNS; garanta que os registros A/CNAME resolvem antes de investigar o SSL
- Build falhando — Leia os logs de build; a maioria dos erros é surpreendentemente legível quando você lê com calma
- App no ar mas funcionalidades quebradas — Quase sempre é problema de variável de ambiente; verifique se as variáveis de produção correspondem às chaves que o app espera
- Erros de conexão com o banco de dados — O banco de produção pode não ter rodado as migrações; verifique a versão do schema
- Páginas lentas — Frequentemente falta configuração de CDN ou há imagens grandes não otimizadas; verifique o monitor de performance
- Erros intermitentes — Muitas vezes é atingir limites do plano gratuito (banco de dados, API, execução de funções); faça upgrade do plano
- Funcionalidades de IA falhando em produção — Confusão entre chave de API de modo de teste e de produção no provedor de IA
- Webhooks do Stripe não disparando — A URL do webhook precisa apontar para o domínio de produção, não para o preview; verifique a configuração do webhook no Stripe Dashboard
Configuração de domínio personalizado: a sequência exata
Adicionar um domínio personalizado (suamarca.com em vez de seuapp.greta.app) é um dos passos pós-lançamento mais importantes.
Passo a passo
- Compre o domínio — Namecheap, Cloudflare, Porkbun. A Cloudflare também funciona como provedor de DNS.
- Adicione o domínio no seu construtor de apps com IA — A plataforma mostra os registros de DNS que você precisa adicionar
- Atualize os registros de DNS — Nas configurações de DNS do seu registrador, adicione exatamente os registros que a plataforma pediu
- Aguarde a propagação — Geralmente de 5 a 60 minutos; pode chegar a 48 horas em casos raros
- Aguarde o SSL — Depois que o DNS resolver, o SSL é emitido em 5 a 60 minutos
- Atualize as variáveis de ambiente — Alguns serviços (URL de webhook do Stripe, URLs de callback do OAuth) precisam do novo domínio
- Atualize o marketing — Assinaturas de e-mail, bios em redes sociais e cartões de visita passam a apontar para o novo domínio
- Configure redirecionamentos — O domínio antigo redireciona para o novo; é comum configurar redirecionamentos de www e do domínio raiz para o principal escolhido
Para fundadores não-técnicos, configurar corretamente o domínio personalizado costuma ser a tarefa de deploy mais intimidadora. A maioria das plataformas guia o processo com cuidado; se travar, a equipe de suporte da plataforma lida com isso rotineiramente.
Perguntas Frequentes
P1: Por que o deploy às vezes leva 10 minutos? Builds (compilação e bundling) podem levar de 2 a 5 minutos em projetos grandes. Enviar para as localizações globais da CDN leva mais 1 a 2 minutos. Migrações de banco de dados podem adicionar tempo. Um deploy de 10 minutos é normal para projetos de porte médio; deploys mais rápidos usam builds incrementais.
P2: Qual é a diferença entre deploys de preview e de produção? Preview é o ambiente de staging que se atualiza a cada mudança, para testes. Produção é o ambiente ao vivo que os usuários reais veem. O preview usa chaves de API de teste; a produção usa chaves reais. O banco de dados de preview é separado do banco de produção.
P3: Preciso entender DNS para usar construtores de apps com IA? Em geral, não para o subdomínio padrão. Sim para domínios personalizados. Construtores modernos tornam isso acessível fornecendo os registros exatos para copiar, mas entender registros A vs CNAME ajuda na hora de resolver problemas.
P4: O que acontece quando eu excluo um deploy? A maioria das plataformas mantém o histórico de deploys e permite rollback por algum período (geralmente de 30 a 90 dias). O deploy ativo no momento é o que os usuários veem. Excluir deploys antigos limpa o histórico, mas não afeta o app ao vivo.
P5: Como faço uma migração de banco de dados em produção? Com cuidado. Teste a migração no preview primeiro. Faça backup do banco de produção antes de rodar. Para mudanças destrutivas (remover colunas, alterar tipos), agende uma breve janela de manutenção e comunique os usuários.
P6: E quanto a SLAs de uptime? A maioria das plataformas de construção de apps com IA oferece 99,9% de uptime ou mais nos planos pagos. Para a maior parte dos SaaS de consumo, isso é suficiente. Para produtos enterprise com compromissos de SLA, verifique se o SLA da plataforma corresponde ao que você está prometendo aos clientes.
P7: Posso mover meu app para outra hospedagem depois? Sim — a maioria dos construtores de apps com IA exporta código real que pode rodar em qualquer lugar. O custo de migração depende da plataforma: plataformas integradas (Greta, Lovable) exigem reconstruir a camada de deploy; plataformas acopladas a CDN (Bolt, v0) costumam ser mais fáceis de migrar porque a camada de hospedagem é mais separável.
Conclusão
- Quando você clica em lançar, seis coisas acontecem: build, envio para a infraestrutura, configuração de DNS, emissão de SSL, provisionamento do banco de dados e carregamento das variáveis de ambiente. Cada uma pode falhar de forma independente.
- As falhas mais comuns são propagação de DNS, variáveis de ambiente incompatíveis e erros de build. Cada uma tem caminhos claros de depuração quando você sabe onde olhar.
- Fundamentos operacionais pós-lançamento — monitoramento, alertas, backups, estratégia de rollback, página de status, resposta a incidentes — separam produtos que funcionam de produtos quebrados. Construa isso desde o primeiro dia.
- A configuração de domínio personalizado é a tarefa de deploy mais intimidadora para não-desenvolvedores, mas é acessível com paciência e registros de DNS copiados exatamente.
Escolha a camada de deploy que você vem evitando aprender — DNS, variáveis de ambiente ou o pipeline de build. Passe uma hora com a documentação da plataforma. Configure monitoramento e alertas esta semana. Configure a página de status na próxima. A camada operacional que separa produtos que funcionam de produtos quebrados é, em grande parte, configurada uma vez e depois mantida. A disciplina de fazer essa configuração é o que separa fundadores cujos apps continuam no ar de fundadores cujos apps quebram sem que eles saibam por quê.
