Relatos de quem constrói o Beyou: resolvendo N+1, adicionando camada de cache, rodando auditoria de segurança e tudo que se aprendeu no caminho.
A produção do Beyou é um laptop de 2012 no meu quarto, alcançado por um túnel, com zero portas abertas no roteador. Este é o porquê de escolher self-host em vez de free tiers, o que quebra de verdade, e por que abrir meu próprio app todo dia ainda é essa sensação.
Terminei o self-host do Beyou e finalmente podia abri-lo de qualquer navegador, em qualquer lugar. Foi exatamente aí que percebi que o navegador era o lugar errado. Esta é a história de ir para o nativo: por que o React Native venceu o Flutter que meu próprio curso ensina, e o monorepo onde uma edição atualiza os dois apps.
O Beyou quase não tinha usuários e mesmo assim construí uma stack completa de observabilidade: Prometheus e Grafana para métricas, GlitchTip para erros de cada cliente, Loki para nunca mais dar SSH atrás de logs, e monitores de uptime que mandam e-mail para um humano. Camada por camada, o porquê de cada uma.
O assistente do Beyou roda em uma cadeia de LLMs gratuitos que se comporta como um único modelo confiável. Assim ele cresceu de um assistente de rotinas para um agente de 33 ferramentas, assim escolhi e ordenei os provedores, e assim a conta segue em exatamente zero.
Antes de colocar o Beyou em produção, fiz uma auditoria de segurança adversarial usando o Claude Code como meu pen tester assistido por IA. Ele encontrou 26 vulnerabilidades em toda a stack, desde falhas de lógica de negócio no sistema de gamificação até configurações incorretas de infraestrutura. Este é o processo completo: o prompt, a metodologia, o que foi encontrado e como corrigi tudo em 3 grupos estruturados.
Como adicionamos uma camada de cache com Caffeine ao backend do Beyou, os problemas que isso resolveu, as decisões de arquitetura por trás e os números reais de performance antes e depois.
O problema N+1 é comum em apps que dependem de JPA e Hibernate. Parei pra investigar como eles aparecem, como identificar e como resolver.