
Criador do Vivo de Código
Marcos Soares
Fullstack Developer · CEO da Agência Poti
Fullstack Developer e CEO da Agência Poti. Mais de 20 anos construindo arquiteturas cloud-native com React, Next.js e sistemas distribuídos. Parceiro comercial do estúdio iellou design. Fundador do Vivo de Código.
21+
anos de experiência
82
artigos publicados
6
tecnologias core
Artigos publicados
82 no totalCSS3, CSS4 ou CSS5? Qual é a versão atual do CSS em 2026
CSS4 existe? E CSS5? Entenda por que o CSS não tem mais uma versão única, como Snapshot, Baseline e Interop se relacionam e veja nove capacidades modernas funcionando em uma única interface sem JavaScript de estado.
Memory Leaks em JavaScript: Diagnóstico, Causas Reais e Correção
Heap crescendo sem parar, RSS estável até o OOM kill, listeners órfãos e closures que seguram DOM inteiro. Um roteiro técnico para diagnosticar vazamentos de memória em Node.js e no browser com heap snapshots, allocation timeline e código corrigido.
Event Loop, Microtasks e Macrotasks: O Modelo de Execução do JavaScript
O event loop não é uma fila única. Entenda a ordem exata de execução entre microtasks, macrotasks e as fases do Node.js, com código que prova cada comportamento.
Debugging Mental: Como Investigar Bugs em JavaScript Sem Depender do Console.log
Console.log é a muleta mais popular do ecossistema JavaScript. Conheça breakpoints condicionais, logpoints, debugger nativo, source maps e técnicas de investigação que resolvem bugs em minutos, não em horas.
Cascade Layers do CSS: Como Dominar a Especificidade Sem Gambiarras
Cascade Layers resolvem o problema estrutural de especificidade que !important e seletores inflados nunca resolveram. Veja como organizar a cascata do seu projeto com @layer, definir prioridade entre camadas e eliminar conflitos de estilo de vez.
CSS-in-JS vs CSS Modules vs Vanilla CSS: Qual Estratégia de Estilização Escolher em 2025
Comparação técnica entre CSS-in-JS, CSS Modules e Vanilla CSS com critérios concretos de performance, DX e manutenção. Sem falso equilíbrio: cada abordagem tem um contexto onde vence.
Animações de Scroll com CSS Puro: animation-timeline e scroll() na Prática
Como usar animation-timeline e scroll() para criar progress bars, fade-ins e parallax com CSS puro. Código funcional, anti-patterns reais e a matriz de decisão para saber quando abandonar o JavaScript.
Migrações de Banco de Dados com PostgreSQL: Prisma Migrate vs Drizzle Kit
Comparação operacional entre Prisma Migrate e Drizzle Kit para migrações PostgreSQL: setup, workflow de desenvolvimento, deploy em produção e os anti-patterns que quebram seu banco.
Busca Semântica com Embeddings em Next.js
Implemente busca semântica real em Next.js usando embeddings da OpenAI, pgvector no PostgreSQL e Route Handlers. Código funcional, trade-offs claros e anti-patterns que destroem performance.
Edge Functions vs Serverless: O Que Muda na Prática
Edge Functions e Serverless Functions resolvem problemas diferentes. Este post compara latência, runtime, limitações de API e casos de uso concretos para você decidir onde colocar cada parte da sua lógica.
Clean Architecture no Frontend React: Separando Concerns de Verdade
A maioria dos projetos React mistura regra de negócio com componente visual. Separar concerns de verdade exige camadas com contratos claros, não pastas com nomes bonitos.
Socket.IO do Zero: Chat Completo com Salas, Typing Indicator e Histórico de Mensagens
Implemente um chat funcional com Socket.IO, Node.js e TypeScript: salas isoladas, indicador de digitação com debounce, histórico persistido no PostgreSQL e tratamento de erros que não quebra em reconexão.