Todos os artigos
As layers de um app React
Dividimos uma tela de pagamento React em view, model e data seguindo Juntao Qiu. O repositório de exemplo revela um useMemo inútil e um fetch em loop.
Modelos de decisão, Jev e Kev
O Jev devolve probabilidades em vez de texto. O confidence não é aprendido, é aritmética, e a calibração é propriedade da distribuição, não do modelo.
overlay-kit
Trocar uma flag global isOpen por um await: o que ganhei, o que perdi e como funcionam por dentro os eventos, o reducer e o openAsync.
Calibração e excesso de confiança em LLMs
Calibração é saber quanto você vai acertar. Como o ECE mede isso, o salto do ECE do GPT-4 de 0.007 a 0.074 após o post-training e o que se sabe da causa.
Linguagem compartilhada
O que fazer quando product manager e developer usam a mesma palavra com sentidos diferentes: ubiquitous language de Evans e grounding de Clark.
Engenharia de Harness (Sistemas)
Do prompt ao context engineering, o que vem depois? O blog de engenharia da Anthropic aponta harness, eval e containment (isolamento).
Kalyx
Por que criei o Kalyx, DatePicker headless para React, e como difere de Ark UI, React Aria e react-day-picker: valores ISO UTC, DST com Intl e testes IANA.
Como economizar tokens de IA
Meça custos de tokens com um React POC e reduza-os com prompt caching, subagent, MCP enxuto, context engineering e Cursor Composer.
Como os tokens funcionam
Como BPE cria tokens, embeddings alimentam LLMs, prefill e decode definem o custo, e KV cache e prompt caching reduzem entradas repetidas.
Arquivos de contexto
Como agentes carregam CLAUDE.md, AGENTS.md, SKILL.md e regras do Cursor, por que instruções se perdem e o que escrever segundo um estudo da ETH Zurich.
Quatro camadas de inteligência de código
Quatro camadas de ferramentas que barateiam a busca de código de agentes de IA: Repomix, mapas tree-sitter, o grafo do CodeGraph e Serena com LSP.
MCP e function calling
Como o MCP difere de function calling: seis primitivas, stdio e Streamable HTTP, o fluxo de tools/list ao loop tool_use e riscos como Tool Poisoning.
Gerenciamento de estado
Gerenciamento de estado no frontend em sete categorias (local, global, servidor, formulário, URL, externo e guards) e critérios de design no React.
Modelo de domínio
Onde a lógica de domínio deve ficar no frontend, com um exemplo de impostos: funções puras, modelo anêmico, mappers, ViewModel e onde parar.
Termos de domínio
Diferenças entre domínio, modelo de domínio, objeto de domínio e modelo de objetos de domínio segundo Eric Evans e Martin Fowler.
Reflexões sobre a refatoração do 2º simulado do Toss Frontend Fundamentals
Refatoração do app de reserva de salas do 2º simulado do Toss Frontend Fundamentals: separação de componentes e extração da lógica de domínio.
Engenheiro frontend na era da IA
Como crescer como engenheiro frontend quando a IA escreve o código: validação, especificação e discernimento, a partir de Karpathy, Vercel v0 e METR.
Abstração
O que é abstração no frontend e como distinguir a boa da ruim: níveis de abstração, nomes que revelam intenção e composição de peças.
queryKey
Como a gestão de queryKey no TanStack Query evoluiu de vetores inline para fábricas de chaves e queryOptions da v5, com DataTag e invalidação.
Como as queryKey são comparadas
Como o TanStack Query decide que duas queryKey são iguais: a serialização com hashKey (ordem das chaves, undefined, Map) e a comparação dos filtros.
Onde colocar o ErrorBoundary
Quantos ErrorBoundary usar e onde, conferido no código instalado: o que cada rota, tela e região recebe, um fallback compartilhado e as condições de retry.
Por que o botão de tentar de novo não funciona
Três casos em que tentar de novo num fallback do react-error-boundary traz o mesmo fallback, conferidos no código instalado, e como resolver cada um.
Propagação de erros
Lance o mesmo erro de sete lugares e só quatro chegam ao ErrorBoundary. Este post segue para onde cada tipo realmente propaga.
Dominando o React Fiber por completo
Análise do React Fiber pelo código-fonte: Stack Reconciler, nós Fiber, double buffering, Lanes, Work Loop, render e commit, e Concurrent Features.
Por que o React usa MessageChannel
Por que o Scheduler do React usa MessageChannel e não requestIdleCallback, rAF ou setTimeout: os PRs do React e o atraso de 4 ms medido no Chrome.
O Biome pode substituir o ESLint e o Prettier?
Biome versus ESLint e Prettier: desempenho de linting e formatação, experiência de adoção e guia de migração para uma toolchain baseada em Rust.
Zustand, afinal, por que você é ProviderLess?
Uma análise do código-fonte do Zustand: como ele gerencia estado sem Provider e no que difere da Context API do React.
Entendendo algoritmos de compressão
Comparamos estrutura, velocidade e taxa de ZIP, GZIP, ZSTD, BZIP2, XZ e Brotli, por que o tar.gz comprime mais que o zip e quando escolher tar.zst.
A diferença entre LZ77 e LZ78
Como LZ77 e LZ78 diferem no uso do dicionário e na forma de esquecer o antigo, e como DEFLATE, ZIP, GZIP e Zstd descendem da família LZ77.