Lição 3 de 9: Domínio real
- Decisão registrada em
docs/decisions.md: domínio próprio (qual) ou*.vercel.apppermanente (por quê) - Se domínio próprio: domínio registrado + DNS apontando + Vercel configurado + SSL ativo
- Atualização do check 6 do
npm run doctor(placeholder vira check real) - Commit
chore(domain): custom domain configuredoudocs: stay on vercel.app — reason X
Esta lição é uma decisão (comprar ou não) mais configuração no painel de duas plataformas. Nenhum passo escreve código.
A pergunta: sim ou não?
*.vercel.app é uma URL real, pública, com SSL. Funciona pra mostrar pra amigo, pra colocar no Twitter, pra usar pessoalmente. Pra cobrar dinheiro de estranho, ou pra um auditor da Receita acessar, quase sempre tem que ser domínio próprio.
Esta lição responde primeiro sim ou não. Se for sim, conta com R$ 50/ano e 30 minutos de DNS. Se for não, *.vercel.app continua bom pro estágio. Pra produto interno, ferramenta pessoal, ou MVP que talvez morra em 2 semanas, o subdomínio do Vercel dá conta.
Independente da resposta, você vai:
- Decidir com critério explícito (4 perguntas no Passo 1)
- Registrar a decisão em
docs/decisions.mdcom a razão escrita - Atualizar check 6 do
npm run doctor(placeholder vira check real)
Se a resposta for sim, ainda: comprar domínio, configurar DNS pro Vercel, confirmar SSL ativo.
Passo 1 — Decida sim ou não
Antes de comprar nada, decide. Cole no Claude:
Vou decidir se compro domínio próprio ou fico em `*.vercel.app` pra esse produto. Responde sim ou não pra cada uma:
1. O produto vai cobrar dinheiro de estranhos (não de você ou amigos próximos)?
2. O produto vai aparecer em material formal (NF, contrato, email pra cliente B2B)?
3. O produto vai aparecer em SEO/orgânico (Google vai indexar com a URL)?
4. Você prevê manter esse produto rodando por 6+ meses?
Se 2+ "sim": domínio próprio.
Se 0-1 "sim": `*.vercel.app` é OK pro estágio atual.
Não responde pra mim — eu vou responder pra mim mesmo. Esse prompt é só guia.Esta lição assume que você decidiu sim. Se decidiu não, pula pro Passo 5 (registrar decisão) e segue pra L04. Você pode comprar domínio depois sem retrabalho: só repete esta lição quando for hora.
Passo 2 — Escolha e registre o domínio
Para domínios .com.br, Registro.br é o único canal oficial e o mais barato (~R$ 40/ano). Para domínios .com / .ai / .app / outros TLDs, Cloudflare Registrar é o padrão da indústria (preço de custo, sem markup, ~US$ 10/ano).
Não rode nada — só me dá orientação. Quero registrar o domínio "<seu-dominio>". Pergunta:
1. É .com.br ou .com (ou outro)? Tem cobrança de CPF/CNPJ pelo registrar?
2. Lista os 3 passos do fluxo de registro (sem comprar — só passos descritivos)
3. O que eu vou precisar configurar depois (DNS, etc.) — descreve em 3 linhasLeia, escolhe o registrar e compra manualmente. Você precisa do CPF/CNPJ e do cartão. Pra .com.br, você paga e aguarda a confirmação por email (a Receita Federal vincula). Pra .com, é instantâneo.
Passo 3 — Configure DNS apontando pro Vercel
O Vercel te diz exatamente quais records adicionar. No dashboard do Vercel, vai em Settings → Domains → Add Domain e cola seuproduto.com.br (ou .com). O Vercel responde com 2 opções:
- (recomendado pra subdomínios tipo
app.seuproduto.com.br) - (necessário pra root domain como
seuproduto.com.br, com IPs do Vercel)
Configura no painel do registrar (Registro.br ou Cloudflare). Depois cola no Claude pra confirmar:
Configurei DNS no <registrar>. Roda `dig seuproduto.com.br` (e/ou `dig www.seuproduto.com.br`) e me mostra a resposta. Quero confirmar que está apontando pra IP do Vercel.Se aponta pro Vercel, ótimo. Se ainda aponta pro padrão do registrar, é a propagação: aguarda 5-30 minutos e tenta de novo.
Passo 4 — Confirme SSL ativo
O Vercel emite SSL automaticamente via Let's Encrypt. Quando o DNS aponta certo, o cadeado aparece em 1-2 minutos. Abre https://seuproduto.com.br no browser:
- Cadeado verde / sem aviso de "Not secure"
- Mesma página da fatia 1 que estava em
*.vercel.app - Submeter o formulário ainda funciona
Se o cadeado mostra aviso, espera 5 minutos e tenta de novo (o Let's Encrypt às vezes demora). Se passar de 10 minutos com erro, no dashboard do Vercel tem um botão Refresh certificate: clica.
Passo 5 — Registre a decisão e atualize o doctor
Independente de "sim" ou "não", registra a decisão num arquivo de docs. Decisão sem registro vira pergunta repetida 3 meses depois.
Cria ou atualiza `docs/decisions.md` adicionando:
# Decisões do produto
## Domínio
- **Escolha**: <domínio próprio: seuproduto.com.br | `*.vercel.app` permanente>
- **Data**: <data>
- **Por quê**: <1-2 frases descrevendo a razão da decisão>
- **Quando revisitar**: <evento que vai gatilhar revisão, ex: "quando primeiro cliente pagante chegar" ou "quando fizer rebrand">
Mostre o diff antes de aplicar.E atualiza o npm run doctor pra fazer o check 6 real (no lugar do placeholder da L02):
Atualiza o check 6 do `bin/doctor.mjs` (criado na L02). Substitui o placeholder por:
- Lê `docs/decisions.md` procurando pelo bloco "Domínio"
- Se a decisão é "vercel.app permanente": retorna OK + a razão registrada
- Se a decisão é "domínio próprio: <x>": faz `dig <x>` e checa se aponta pra Vercel; OK se sim, FAIL se não
- Se não encontra a decisão registrada: FAIL com mensagem "configure docs/decisions.md → Domínio"
Mostre o diff antes de aplicar.Aprove. Roda npm run doctor: agora os 6 checks são todos reais.
Passo 6 — Faça o commit
Faça commit das mudanças. Mensagem: `chore(domain): custom domain configured` se for domínio próprio, ou `docs: stay on vercel.app — reason X` se for ficar no padrão. Mostra os comandos antes.Aprove. Confira no GitHub.
Build Diary — o CEAP escolheu .escoladados.com e documentou o trade-off
O CEAP roda em ceap.escoladados.com, subdomínio do domínio principal do projeto editorial. O DEPLOYMENT_PLAN.md registra o passo 1 da decisão como item explícito:
Deployment Steps
1. Register Domain
Go to Cloudflare Dashboard / https://dash.cloudflare.com/domains
Register: escoladados.com (~$10.44/year)
Note o (~$10.44/year). O autor registrou o custo concreto na decisão, pra um leitor futuro entender que a escolha não foi "porque sim", foi feita com o preço sob o olho. E em outro lugar do mesmo doc, o ADR-007 registra a razão de não usar Vercel:
Bandwidth: Unlimited (Cloudflare) vs 100 GB (Vercel)
Brazil CDN: 2+ cities (Cloudflare) vs 1 city (Vercel)
A decisão está documentada com critério mensurável (bandwidth, CDN), em vez de uma preferência genérica. Você pode ter escolhido Vercel com domínio .com.br e está OK. O que importa é o porquê estar escrito em algum lugar pra próxima decisão fazer referência.
Takeaways
- Domínio próprio depende do estágio do produto. 4 perguntas decidem (cobrar de estranho, material formal, SEO, vida útil 6+ meses).
.com.brno Registro.br (R$ 40/ano, CPF obrigatório);.comno Cloudflare Registrar (~US$ 10/ano, preço de custo).- DNS via CNAME (subdomínio) ou A record (root domain). Propagação geralmente <1h. SSL automático via Let's Encrypt.
- Decisão registrada em
docs/decisions.mdcom data + razão + quando revisitar. Sem isso, vira pergunta repetida 3 meses depois.
Você terminou quando
Três coisas:
- Decisão registrada em
docs/decisions.mdcom data, razão, e gatilho de revisão - Se domínio próprio: domínio rodando com SSL e fatia 1 funcional na URL nova
npm run doctorretorna 6 OKs (sem placeholder)