Bastidores

Desenvolvimento· Arrumando a casa · parte 2

Por que tirei os três sites do GPT Sites.

O GPT Sites colocou meus três sites no ar, mas não dava HSTS na raiz, código no repositório nem controle sobre o que cada página carrega.

O LCP do ClipLeve no celular: 9,9 segundos no GPT Sites e 1,3 segundo no site novo.

Meus três sites entraram no ar pelo GPT Sites, da OpenAI, e isso teve valor. Para vender, porém, eles precisavam de velocidade, de cabeçalhos de segurança na raiz do domínio, de código no repositório de cada produto e de controle sobre o que cada página carrega. O arranjo atrapalhava cada uma dessas coisas. Foi um bom começo, que ficou pequeno.

Uso os modelos da OpenAI todos os dias, a ponto de ter o reconhecimento pelo uso de mais de 10 bilhões de tokens. A saída foi uma decisão técnica. Os números abaixo mostram o que pesou.

O domínio raiz não seguia as configurações da minha zona

A raiz do domínio apontava, por registros A, para o Cloudflare for SaaS da OpenAI. Nesse arranjo, as configurações da zona do dono do domínio não valem para a raiz, porque o encadeamento com o provedor só funciona por CNAME. Na prática, o que eu configurava na zona não chegava ao domínio raiz.

Medi o efeito em 29 de outubro de 2026. O HTTP da raiz ia para o HTTPS com um redirecionamento 302 da OpenAI, que é temporário, e não com 301, que é permanente. A raiz também não recebia HSTS, o cabeçalho que manda o navegador usar sempre HTTPS. O www, que passava pela minha zona, seguia o padrão. Além disso, a página recebia um script de desafio da Cloudflare injetado pela OpenAI.

O ClipLeve mostrou o custo do arranjo

O ClipLeve foi o caso mais claro. No Lighthouse para celular do site antigo, rodado em 30 de outubro, a nota foi 70 de desempenho, 100 de acessibilidade, 82 de boas práticas e 100 de SEO. Os 82 de boas práticas vinham do script de desafio injetado. O desempenho sofria por outro motivo: o LCP, que mede quando a parte principal da página aparece, era de 9,9 s, porque a imagem do topo era um PNG de 1,7 MB servido sem cache.

Faltavam dados estruturados, llms.txt (o arquivo que orienta modelos de linguagem sobre o site) e um modelo de página, então cabeçalho e rodapé se repetiam nas 8 páginas. Pior ainda, o código no ar tinha saído de um checkout temporário, que não existia no repositório do ClipLeve. O repositório guardava uma cópia dos arquivos publicados, atualizada à mão.

O site novo do ClipLeve, em Astro, foi ao ar em 30 de outubro. No Lighthouse de celular, a home em inglês, um guia e a calculadora tiveram 100 nas quatro notas, com LCP de 0,9 a 1,3 s.

Os sites novos mostraram a diferença na produção

O Pagenello é um site novo em Astro, com Worker da Cloudflare, no ar desde 30 de outubro, às 00:15 UTC. A primeira versão deu 83 de desempenho no PageSpeed do celular, com LCP de 4,5 s por causa das imagens do topo, e 97 de acessibilidade, por causa do contraste.

Na manhã de 30 de outubro, depois de duas correções, a produção chegou a 100 nas quatro categorias, no celular (LCP de 1,8 s e CLS 0) e no computador (LCP de 0,5 s). O último ponto a resolver era um pequeno deslocamento de layout, CLS 0,041, quando a fonte da marca chegava.

O Pagenello também precisa de formulário. O Worker grava cada pedido num banco D1, envia por e-mail um aviso e uma confirmação para quem pediu, e tem Turnstile, limite por IP e proteção contra pedidos duplicados.

O luisjunior.ai foi refeito do zero em Astro e está no ar desde 30 de outubro, às 17:46 UTC (os detalhes estão na parte 4). Em produção, no celular, marca de 98 a 99 de desempenho e 100 nas demais categorias. No computador, tem 100 em tudo, com LCP de 0,5 s.

Os três domínios passaram a seguir o mesmo padrão

Com a saída, o HTTP passa para HTTPS com 301 e a raiz recebe HSTS, nos três domínios. Cada site tem o código no repositório do próprio produto, e o deploy é um comando, npm run deploy, que publica e avisa os buscadores pelo IndexNow. Cada site também carrega só o que o próprio código manda.

Para colocar um site no ar rápido, o GPT Sites serve bem. Quando o site vira canal de venda, cada segundo de carregamento e cada cabeçalho passam a contar. A troca em si, feita sem sair do ar, é o assunto da parte 3.

Teste local verde até no S23, e o staging ainda achou um defeito.08 nov · DesenvolvimentoOutra IA revisou 4.170 traduções da IA em inglês e corrigiu 307.08 nov · Inteligência artificialA conta live do Stripe estava ativa, mas falhou na minha conferência.08 nov · LançamentoTrês regras de HSTS num só domínio: por que deixei o preload de fora.08 nov · DesenvolvimentoUma palavra a menos derrubou 13 páginas que já estavam no ar.08 nov · DesenvolvimentoOutro agente de IA revisou meu código 71 vezes e criou dois defeitos.08 nov · Inteligência artificialDepois de 20 anos de carreira, publiquei meu primeiro pacote no npm.08 nov · LançamentoSozinho com IA: iPhone, Android, SaaS com MCP e CLI, e já faturando.07 nov · BastidoresCopiei a mecânica dos líderes e recusei a mentira deles.07 nov · BastidoresA pergunta de LGPD que trava a venda: e o backup?07 nov · ProdutoA IA calibrou minha câmera pelos números. Ficou cara de lanterna.07 nov · BastidoresUm usuário não via o dia de ontem. Abri todo o passado do Garfim.07 nov · Produto62% baixavam o Garfim. O problema estava antes da página.07 nov · LançamentoO idioma certo na tela pode virar o errado no servidor.07 nov · DesenvolvimentoO limite de 10 por minuto que deixou passar muito mais.07 nov · DesenvolvimentoUm PR do Dependabot travou meu banco e as rotas voltaram 500.07 nov · DesenvolvimentoMeus produtos novos não começam do zero. Começam de um clone.07 nov · DesenvolvimentoTirei uma trava da minha IA e a resposta caiu de 5,5 s para 3,7 s.07 nov · DesenvolvimentoTroquei velocidade por uma auditora que confere cada frase.07 nov · Inteligência artificialEscrevi o método CERNE lendo seis especificações reais.07 nov · Inteligência artificialComo anunciar na Meta e vender online no CPF sem abrir empresa.05 nov · BastidoresPausei anúncios depois de ignorar o resultado anterior.05 nov · BastidoresComo depurei um erro de API sem log no registro do Garfim.05 nov · DesenvolvimentoComo forçar atualização no React Native antes de um defeito grave.05 nov · DesenvolvimentoComo levei o LCP do ClipLeve de 9,9 s para menos de 1,5 s.05 nov · DesenvolvimentoPubliquei 650 páginas contra a regra do meu método.05 nov · Inteligência artificialUma conta para organizar erros, métricas e IA dos meus produtos.05 nov · BastidoresSeparei o painel do site e pus o Access na porta.05 nov · DesenvolvimentoUma lista de 69 itens encontrou requisitos só no papel.05 nov · BastidoresO antispam esperou tanto que parou o formulário.05 nov · DesenvolvimentoCortei a publicação de 17 minutos para 4 na minha máquina.05 nov · DesenvolvimentoEu gravo. A IA corta, legenda e entrega o vídeo curto.05 nov · Inteligência artificialComo criar anúncios UGC com IA usando o método PROVA.05 nov · Inteligência artificialA IA disse que usou as skills. A página provou o contrário.05 nov · Inteligência artificialNove páginas reprovadas antes de encontrar uma identidade.05 nov · Inteligência artificialEm 48 horas, juntei domínios, e‑mail, sites e medição num padrão só.30 out · BastidoresPor que tirei os três sites do GPT Sites.30 out · DesenvolvimentoComo troquei o luisjunior.ai com cerca de 10 segundos fora do ar.30 out · DesenvolvimentoRefiz o luisjunior.ai do zero: cada afirmação com prova.30 out · LançamentoUm padrão para todos os domínios, inclusive os de produtos futuros.30 out · BastidoresTodo o e‑mail dos meus domínios saiu do VPS num só dia.30 out · DesenvolvimentoDecidi mover o envio do Garfim do Resend para a Cloudflare.30 out · DesenvolvimentoO método FONTE para aparecer no Google e nas respostas de IA.30 out · Inteligência artificialTrês sites, três decisões de busca, e uma delas é não gerar páginas.30 out · Inteligência artificialMedição de vários sites num painel só, com consentimento.30 out · BastidoresComo a IA me apresenta mídias para aprovação29 out · Inteligência artificialO Garfim chegou ao Google Play. Agora tem Android e iPhone.22 out · LançamentoConseguir testadores e esperar 14 dias: a reta final do Garfim no Android.22 out · BastidoresO ClipLeve chegou à App Store. O que aprendi até aqui.20 out · LançamentoO ClipLeve foi rejeitado de novo. Dessa vez, por uma palavra.20 out · ProdutoO Garfim foi aprovado. E já está na App Store.16 out · LançamentoA última negativa do Garfim: câmera, assinatura e o caminho inteiro.16 out · LançamentoClipLeve: o cuidado por trás de um vídeo mais leve.12 out · ProdutoPor que restaurar uma assinatura pode falhar em outra conta.12 out · ProdutoQuando um aplicativo pode dizer que sua conta foi excluída?12 out · ProdutoO que a primeira negativa da App Store me fez explicar.08 out · LançamentoO que quero aprender com o teste fechado do Garfim.08 out · ProdutoO trabalho de uma assinatura continua depois da compra.03 out · DesenvolvimentoPor que o Garfim ganhou um plano gratuito.03 out · ProdutoO login funcionou. Por que a tela do Garfim não saiu do lugar?03 out · LançamentoPagenello: um site começa pelo que o visitante veio fazer.03 out · LançamentoComo uma foto do almoço vira um produto.27 set · ConcepçãoAs decisões que continuo tomando ao desenvolver com IA.27 set · DesenvolvimentoApresentar o Garfim ao público também é um teste do produto.27 set · Lançamento

GET luisjunior.ai/llms.txt

Esta é a versão do site escrita para modelos de linguagem: os mesmos fatos, sem layout, prontos para um assistente de IA ler e citar. Agentes no Chrome também encontram aqui ferramentas WebMCP para consultar produtos, textos e contato.

conectando…0 tokens · 0 tok/s