Engineering notes
Technical decisions, architecture and performance — what we learn building software products.
TypeScript strict: por que proibimos `any`
Um `any` não é só um tipo frouxo — ele desliga o verificador e o silêncio se espalha pelo código. O que usar no lugar: unknown, narrowing e generics.
TypeScriptDXArquiteturaReadAcessibilidade que não é enfeite: WCAG na prática
Acessibilidade não é um selo no fim do projeto — são decisões de contraste, foco e semântica tomadas enquanto você codifica. Os critérios que aplicamos e como verificá-los.
AcessibilidadeDXPerformanceReadPostgres que aguenta: índices, N+1 e connection pooling
A maioria dos bancos lentos não precisa de uma máquina maior — precisa de três correções baratas. Onde a lentidão realmente nasce e como resolvê-la.
BackendPostgreSQLPerformanceReadCore Web Vitals em 2026: o que medir e como corrigir
LCP, INP e CLS — os três números que o Google mede e que decidem se sua página é rápida de verdade. Os limites atuais e o que fazer quando você não passa.
PerformanceSEOReactReadCache no Next.js 16: o modelo mudou, e para melhor
Cache Components e a diretiva use cache trocam o cache implícito e cheio de pegadinhas por um modelo explícito. O que muda na prática e como não se queimar.
Next.jsPerformanceArquiteturaReadServer Components na prática: menos JavaScript, páginas mais rápidas
O que muda quando a renderização volta para o servidor, e como usamos isso para entregar interfaces rápidas sem abrir mão de interatividade.
ReactPerformanceNext.jsReadPor que escolhemos Next.js para produtos que precisam escalar
As decisões técnicas por trás do framework que usamos na maioria dos nossos projetos — e quando ele faz sentido para o seu produto.
Next.jsArquiteturaPerformanceRead