Pular para o conteúdo

Engenharia

Como este site foi feito

É a mesma engenharia que vendemos, aplicada primeiro em nós. Nada do que segue precisa de fé: dá para inspecionar de fora.

HTML completo, sem depender de JavaScript

Os rastreadores de IA — GPTBot, ClaudeBot, PerplexityBot — não executam JavaScript. Cada página deste site é gerada estaticamente por idioma e chega inteira na primeira resposta do servidor. Dá para conferir você mesmo: desligue o JavaScript no navegador e o conteúdo continua lá.

Três idiomas publicados, sem quebrar o guarani

O guarani usa caracteres que a maioria das fontes populares não traz — ẽ, ỹ e o g̃, que nem existe como caractere pré-composto. As fontes deste site carregam o subconjunto que os cobre, e uma verificação automática lê o CSS gerado depois de cada compilação: se alguém escolher uma fonte que não os cubra, a verificação falha. Ela roda a cada mudança proposta, não quando alguém lembra de olhar.

A rota em guarani é publicada quando o conteúdo estiver traduzido, não antes. Servir /gn/ com texto em espanhol seria conteúdo duplicado para os buscadores e desrespeito com quem fala o idioma.

O que é verificado em cada mudança

Cada verificação que roda aqui nasceu de uma falha concreta, e todas têm a mesma característica: não quebram a compilação e não emitem aviso nenhum.

Uma delas proíbe formatar datas e números com o idioma do conteúdo. Pedir um formato para o código «gn» não dá erro: cai silenciosamente no idioma padrão do servidor — português na máquina onde se escreve, inglês dentro de um contêiner, com o mesmo código. Outra exige que todos os textos estejam numa única forma de normalização Unicode, porque o g̃ só existe decomposto e misturar as duas formas quebra comparações, buscas e a geração de URLs sem que nada pareça errado na tela. Outra proíbe sintaxe de plural em guarani, que escolheria sempre o ramo errado. E outra compara a cobertura real de tradução com a lista de idiomas publicados, falhando nos dois sentidos: idioma publicado pela metade, ou idioma já completo que ninguém publicou.

Junto com isso rodam a checagem de tipos e a compilação de produção inteira, não o modo de desenvolvimento. E um teste em navegador de verdade abre a página, confirma que o texto em guarani está no HTML que o servidor manda, que ele preserva a normalização e que existe uma fonte web carregada cobrindo esses caracteres. Esse teste ainda guarda uma captura do grupo g̃ para inspeção humana: olhar como o til cai sobre o gê é a única coisa que nenhuma verificação automática resolve sozinha.

Detecção de idioma sem sacrificar SEO

A raiz do site redireciona uma única vez (307), conforme o cookie e o cabeçalho Accept-Language do navegador. Dentro de cada idioma não há redirecionamento, e o hreflang é recíproco com x-default. Os buscadores rastreiam cada versão sem interferência.

Dados estruturados com identidade estável

Um único grafo JSON-LD com @id conecta organização, serviços, pessoas e migalhas de navegação. Sem FAQPage: o Google aposentou esse resultado enriquecido em 2026, e não implementamos schema de enfeite.

Claro e escuro, com o contraste medido no pixel

O seletor de tema tem três estados — claro, escuro e o do sistema — e funciona por um atributo na raiz do documento, não pela preferência do sistema sozinha. Um script mínimo no cabeçalho aplica a escolha salva antes da primeira pintura, então ninguém vê um flash claro antes da página escura. Essa escolha fica guardada no navegador, no seu próprio dispositivo, e voltar para «sistema» apaga o dado.

A primeira implementação usava a função CSS light-dark() e não funcionava: dentro de uma variável de cor ela não reage à troca manual, só à preferência do sistema. O tema do sistema funcionava, o seletor não fazia nada, e não havia erro nem aviso em lugar nenhum. Só apareceu medindo o valor final da cor, em vez de olhar a captura de tela.

O contraste é tratado do mesmo jeito: medido no pixel real, não estimado a partir do CSS. O método importa — medindo dentro da caixa do texto, mede-se a borda suavizada da letra, e foi assim que um título branco sobre fundo petróleo deu 1,56:1, um número fisicamente impossível e justamente o que denunciou o método. O que funciona é esconder o texto, capturar de novo o fundo que estava atrás e ler o pior pixel dessa foto. Toda cor nova e todo painel translúcido passa por isso, nos dois temas, antes de entrar.

As ilustrações são interface nossa, não foto de banco

O que ilustra cada linha de serviço não é foto de banco nem imagem gerada: são miniaturas de interface construídas com o mesmo HTML e o mesmo CSS do site, montadas no servidor, uma por linha. Não há imagem nenhuma para baixar, e o texto de dentro passa pelo mesmo dicionário que o resto do site, nos três idiomas.

As entidades são genéricas de propósito — «Pedido 0412», «AP 3». Um nome com cara de cliente real ou um número com cara de resultado prometido seria prova social fabricada, exatamente o que este site critica nos outros.

São ilustração e estão marcadas como tal para os leitores de tela: o que precisa ser lido vive no texto, não dentro da janelinha. A sequência de entrada é CSS, e o estado final é o estado de repouso — com movimento reduzido, vê-se a tela completa, sem animação.

Desempenho, e nenhum terceiro no meio

Fontes auto-hospedadas com preload, espaço reservado para cada imagem antes de ela carregar e nenhum WebGL: o fundo animado da capa são manchas de degradê em CSS, sem canvas e sem contexto de GPU. As animações de entrada usam uma biblioteca de movimento que viaja no JavaScript do cliente, depois de o HTML já ter chegado inteiro. Nenhum script de terceiro e nenhum rastreador: nada se coloca entre o servidor e o texto. A meta pública: LCP ≤ 2,5 s, INP ≤ 200 ms e CLS ≤ 0,1 no percentil 75.

O mapa da página de contato é a prova mais concreta disso. Em vez de embutir um mapa alheio, os ladrilhos do OpenStreetMap foram baixados uma única vez, costurados numa imagem de 1200 × 675 e guardados como um arquivo de cerca de 49 KB servido do nosso próprio domínio. Um mapa embutido grava cookie de terceiro na primeira visita, antes de qualquer consentimento, e faria a página desmentir a nossa própria política de privacidade. Quando você abre essa página, não sai uma requisição sequer para fora do domínio: WhatsApp, Google Maps e OpenStreetMap aparecem só como links, e só entram em ação se você clicar.

A versão escura desse mapa também não é um segundo arquivo: é o mesmo, com um filtro CSS que acompanha o seletor de tema. Uma imagem alternativa por preferência do sistema ignoraria a escolha manual — o mesmo problema do light-dark().