-
Três strings e dois fallbacks: integrando a share sheet nativa ao Forgemage.net
O botão de compartilhar na página de detalhe de pedido do Forgemage.net abre a share sheet do sistema onde quer que o sistema operacional tenha uma — Android, iOS, Windows, macOS —, copia o link onde não tem, e fica quieto quando você simplesmente muda de ideia. Aqui está a implementação inteira: navigator.share com três strings, uma guarda de AbortError que deixa cair em vez de capturar, um fallback de clipboard com um fallback de execCommand por baixo, e o detalhe de uma letra no Symfony que decide se o link compartilhado funciona ou não.
Ler artigo ↗ -
Cada novo forjamago deixava a busca mais lenta: matando o N+1 por trás do Forgemage.net
O diretório de forjamagos do Forgemage.net rodava umas sete queries por card — reviews, tempo de resposta, status online, três relações lazy — além de contadores de facetas recalculados a cada mudança de filtro. Veja como levei uma página de 24 cards de ~168 queries para um punhado, com um cache em batch escopado à request e uma passada paginate-then-hydrate, sem mexer nas páginas de perfil individuais.
Ler artigo ↗ -
Markdown for Agents, self-hosted: um subscriber Symfony no lugar de um plano da Cloudflare
A Cloudflare converte páginas em markdown para agentes de IA via Accept: text/markdown — nos planos pagos. O mesmo contrato HTTP cabe num event subscriber Symfony de 144 linhas. Minha homepage foi de 59 KB de HTML para 7,7 KB de markdown, na mesma URL.
Ler artigo ↗