What I learned in production

Software and AI engineering from real problems: what broke, why it broke and how it got back up. The articles are in Portuguese for now, each from a case I lived, with sources checked and the client anonymous.

Systems and SaaSCRM

CRM pronto ou CRM sob medida com WhatsApp: quando vale construir?

Na maioria dos casos, CRM pronto mais uma integração resolve. Os 5 casos em que construir compensa, com preço por usuário do Pipedrive e do Kommo.

10 de outubro de 20265 min read
AI and agentsWhatsApp

Quanto custa um agente de IA de pré-vendas no WhatsApp em 2026?

Implantação a partir de R$ 7 mil e manutenção a partir de R$ 1.500 por mês, mais tarifa da Meta e modelo de IA. A conta em 4 partes, com tabela por volume.

6 min
Apps

Por que a página com 3D cai de 60 para 37 fps no notebook?

No meu site, tela animada em CanvasTexture derrubou o Three.js de 60 para 37 fps na Intel UHD. willReadFrequently resolveu, e a medição exigiu um controle.

4 min
Automation and integrationsLaw firms

Intimações do DJEN pela OAB, três armadilhas que dão resultado errado sem avisar

A consulta pública do DJEN devolve lista vazia com sucesso, perde publicações na busca por nome e tem total que não fecha. O que conferi em 2026-10-09.

6 min
AI and agentsLaw firms

Por que a IA inventa jurisprudência com cara de real e como impedir isso numa minuta

IA pode citar julgado que não existe e quem responde é o advogado. O que tribunais decidiram, o que a OAB recomenda e as quatro travas que uso.

5 min
Automation and integrationsLaw firms

Dá para automatizar a busca no Jusbrasil? O que os termos dizem e onde buscar na fonte oficial

Os termos do Jusbrasil vedam acesso automatizado, scrapers e API não autorizada. Onde buscar jurisprudência e publicações na fonte oficial.

4 min
AI and agentsLaw firms

O que a OAB recomenda sobre atendimento com IA e como isso vira desenho de sistema

A recomendação do Conselho Federal pede que o chatbot diga que é máquina e que o cliente possa falar com uma pessoa. Como isso vira três níveis de resposta.

5 min
Automation and integrationsWhatsApp

API oficial ou não oficial do WhatsApp para atendimento com IA: o que muda?

Para atender clientes de uma empresa com IA, uso a API oficial. A não oficial não tem tarifa, mas as regras do WhatsApp a proíbem e a conta pode ser suspensa.

5 min
Automation and integrationsWhatsApp

O que o WhatsApp Business passou a cobrar em outubro de 2026?

Desde 1º de outubro a Meta cobra as respostas dentro da janela de 24 horas, inclusive as de agente de IA: R$ 0,035 por mensagem após as 1.000 primeiras do mês.

6 min
Apps

Android vai bloquear app fora da Play Store? A verificação de desenvolvedor de 2026 e o PWA

Desde 30/09/2026 o Android exige desenvolvedor verificado em lojas participantes no Brasil. O que muda para sideload e adb, e o que não está dito sobre PWA.

4 min
Automation and integrationsWhatsApp

O que significa o erro 131049 do WhatsApp quando o template de marketing não é entregue?

O erro 131049 é o limite da Meta para mensagens de marketing por usuário. O que a documentação manda fazer, por que reenviar em loop piora e como contornar.

5 min
AI and agents

Como testar um chatbot com LLM sem a prova mentir?

Teste de chatbot passa verde lendo o rodapé em vez da resposta. Como medir a bolha certa, escolher a pergunta e comparar só a parte que não varia.

4 min
Data and dashboards

Três consultas SQL que perdem linha ou rodam por linha sem dar erro (LIMIT, NOT EXISTS, função VOLATILE)

LIMIT antes do filtro, NOT EXISTS em INSERT SELECT e função VOLATILE no WHERE dão resultado errado ou lento sem erro. Testado no Postgres 16, com a correção.

4 min
AI and agentsWhatsApp

Por que o lead fica sem resposta no Chatwoot com n8n? O webhook que nunca virou execução

Quando a conversa termina na fala do cliente, o webhook do Chatwoot pode ter estourado o prazo de 5 segundos no n8n. Como achar os casos e responder na hora.

5 min
Data and dashboards

Por que o Supabase devolve só 1.000 linhas e não avisa? (max rows do PostgREST)

O Supabase corta toda resposta da API em 1.000 linhas por padrão, sem erro. Como o limite max rows engana uma soma na tela e como somar no banco.

4 min
Systems and SaaS

Por que o primeiro pagamento real achou bugs que quase mil testes não viram?

997 testes verdes e o plano não subiu depois do primeiro pagamento. Quatro bugs de webhook, tempo, data e coluna, e por que os testes copiavam o erro do código.

5 min
Apps

Servidor em UTC e navegador no Brasil: por que a data aparece errada por um dia?

Data renderizada no servidor em UTC e no navegador em UTC-3 diverge à noite e gera erro de hidratação do React. Entenda a causa e como fixar o fuso.

4 min
AI and agents

Por que o agente de IA esquece a regra do prompt no meio da conversa?

A regra no prompt de sistema perde força conforme a conversa cresce. O que a documentação diz, o que medi num assistente de chat e como repetir o lembrete.

4 min
Automation and integrationsCRM

Conversions API conectada, mas a Meta pede "Connect your CRM": o que falta?

Receber eventos pela Conversions API não cadastra a integração de CRM. O que a Meta exige em custom_data e action_source, e o passo seguinte, o funil.

4 min
Automation and integrations

n8n Community: o que a licença grátis libera, e posso vender fluxo para cliente?

A chave grátis libera pastas, debug no editor e dados de execução. Cobrar para construir fluxos para clientes é permitido; hospedar n8n como serviço, não.

4 min
Apps

Por que o iPhone dá zoom na página quando toco num campo do formulário?

O Safari do iPhone amplia a página ao focar um campo com fonte menor que 16px. Como confirmar, corrigir com uma regra de CSS e por que não desligar o zoom.

4 min
Data and dashboardsCRM

Por que o webhook do RD Station chega sem funnel_stage, e o lead do formulário da Meta some?

O webhook do RD Station Marketing traz a última conversão do instante, às vezes sem etapa do funil. E o formulário novo da Meta pode descartar o lead calado.

6 min
Automation and integrations

Por que reenviar uma requisição de criação com upsert faz o status voltar atrás?

Upsert que sobrescreve a linha inteira não é idempotente: o reenvio desfaz o que já avançou. Como usar ON CONFLICT DO NOTHING e provar que nada regrediu.

4 min
Automation and integrations

Como reprocessar em massa sem duplicar? O que é seguro repetir (retry e idempotência)

Ligar retry em toda chamada externa cria registros duplicados. Classifique antes: só leitura e atualização com id são seguras. Exemplo em fluxos n8n.

4 min
AI and agents

Como dar memória a agentes de IA que funcione com qualquer modelo?

Guardar a memória em arquivos Markdown versionados no git, com um arquivo canônico lido por Claude Code, opencode e outros. Como montei e onde quebrou.

4 min
Systems and SaaS

RLS no Supabase sem GRANT: por que a tela fica vazia e não dá erro?

Sem GRANT na tabela, a política de RLS nem chega a rodar. Como o Supabase e o Postgres tratam isso, por que a tela abre vazia e como conferir em uma consulta.

5 min
Data and dashboardsCRM

Por que a conversão offline do Google Ads não aparece? CONVERSION_PRECEDES_EVENT e EXPIRED_EVENT

Conversão offline do Google Ads zerada sem erro na tela: CONVERSION_PRECEDES_EVENT, EXPIRED_EVENT e o partial_failure_error que fica dentro da resposta.

5 min
Systems and SaaS

Refresh token rotativo: como detectar quando um token antigo é reutilizado?

Rotacionar o refresh token só protege se o servidor guardar a família de tokens e derrubá-la no reuso. E cinco jeitos de essa defesa deslogar usuário inocente.

5 min
Systems and SaaS

Rate limit atrás de proxy: por que bloqueou todo mundo de uma vez?

Sem trust proxy, o Express vê o IP do proxy em toda requisição e o rate limit vira um teto único. Como declarar o número de saltos e por que não usar true.

4 min
Data and dashboardsCRM

Como mover um negócio de funil pela API do Bitrix24 e extrair a conversa do Open Lines?

crm.deal.update não troca o funil do Bitrix24 e responde sucesso. Use crm.item.update. E a conversa do Open Lines só aparece com ACTIVE_ONLY=N.

4 min
Data and dashboardsWhatsApp

Por que o contato do WhatsApp não bate com o CRM? O caso do nono dígito

A Meta pode devolver o número do cliente sem o 9 do celular. O mesmo contato passa a existir duas vezes e a busca no CRM falha. Como cruzar sem errar.

4 min
Automation and integrationsWhatsApp

Por que a Meta entrega o mesmo evento duas vezes e o seu sistema responde em dobro?

O webhook da Meta não promete entrega única: repete quando falha e a documentação manda deduplicar. Como evitar a resposta em dobro, com o exemplo no n8n.

4 min
Automation and integrations

Dá para publicar Reels e Story no Instagram pela API sem App Review?

Sim, se o app serve só o seu próprio negócio e usa Standard Access. O limite é 100 posts por 24 horas por conta. Vários clientes exigem Advanced Access.

5 min
Automation and integrationsAds

Make: por que o gatilho de Facebook Lead Ads dispara para todos os formulários da página?

O webhook de leads da Meta é por página. Dois cenários da mesma página recebem leads um do outro. Filtre pelo formId logo depois do gatilho.

4 min
Automation and integrationsWhatsApp

Por que a API do WhatsApp responde 200 com wamid e o PDF ou a mídia não chega?

A resposta 200 com wamid só confirma que a Meta aceitou o pedido. Com mídia por link, o download falha depois e calado. O que conferir e como corrigir.

5 min

Have a similar problem in your operation?

Tell me in one sentence. I reply with what can be done, how long it takes and what it costs.

Tell me the problem