<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <atom:link href="https://eu.gabrielsv.com/feed.xml" rel="self" type="application/rss+xml" />
        <title><![CDATA[Gabriel Silva — Blog]]></title>
        <link><![CDATA[https://eu.gabrielsv.com/feed.xml]]></link>
        <description><![CDATA[Ensaios, notas e craft sobre desenvolvimento web por Gabriel Henrique da Silva.]]></description>
        <language>pt-BR</language>
        <pubDate>Sat, 23 May 2026 02:17:53 +0000</pubDate>

                    <item>
                <title><![CDATA[PHP sem framework em 2026: arquitetura, código e o que você assume quando dispensa o Laravel]]></title>
                <link>https://eu.gabrielsv.com/blog/php-sem-framework-em-2026</link>
                <description><![CDATA[Framework não é resposta automática pra todo projeto. Veja quando PHP sem framework ainda é a melhor escolha técnica em 2026, com quatro cenários completos: webhook do Mercado Pago, API REST com PostgreSQL, importação de CSV via CLI e formulário de contato com proteção CSRF e envio via SMTP.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Sat, 23 May 2026 02:17:53 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Observabilidade em Node e NestJS na prática: logs, métricas e traces sem encheção de linguiça]]></title>
                <link>https://eu.gabrielsv.com/blog/observabilidade-node-nestjs-logs-metricas-traces</link>
                <description><![CDATA[Rodar código em produção é uma coisa; entender o que ele está fazendo é outra. Veja como montar observabilidade real em Node/NestJS: logs estruturados com Pino, métricas com Prometheus e tracing com OpenTelemetry, do zero ao painel que importa.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Wed, 20 May 2026 01:28:36 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Guia Completo de Filas e Jobs Assíncronos com BullMQ e Redis no NestJS ]]></title>
                <link>https://eu.gabrielsv.com/blog/filas-bullmq-redis-nestjs</link>
                <description><![CDATA[Tirar trabalho pesado do caminho da requisição é só o começo. Veja como usar filas com BullMQ e Redis no NestJS de verdade: ciclo de vida do job, retry inteligente, idempotência, concorrência com rate limit e desligamento seguro.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Tue, 19 May 2026 02:58:08 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Node.js em 2026: novas APIs nativas, ESM e Test Runner integrado]]></title>
                <link>https://eu.gabrielsv.com/blog/nodejs-2026-novidades-fetch-test-runner-esm</link>
                <description><![CDATA[
Se você acompanha o mundo do JavaScript, sabe que o Node.js está em constante evolução. Lá atrás, ele trouxe o poder do JavaScript para o servidor. Agora, em 2026, está cada vez mais próximo do naveg...]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Next.js: Server ou Client? Acabou a confusão]]></title>
                <link>https://eu.gabrielsv.com/blog/next-js-server-client-components</link>
                <description><![CDATA[Se você ainda se confunde entre Server e Client Components no Next.js, esse guia é pra você. Entenda de forma prática quando usar cada um, os erros mais comuns, como evitar enviar JavaScript desnecessário e como extrair o máximo de performance do framework.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Socket.io no NestJS: Tempo real sem código espaguete]]></title>
                <link>https://eu.gabrielsv.com/blog/socket-io-no-nestjs-tempo-real-sem-codigo-espaguete</link>
                <description><![CDATA[Implementar WebSockets no Node.js puro quase sempre resulta em código espaguete difícil de manter. Veja como o NestJS resolve isso usando Gateways para organizar a comunicação em tempo real (como chats e notificações), mantendo seu backend limpo, testável e escalável, exatamente como uma boa arquitetura deve ser.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Refatoração que vale a pena vs refatoração que é perda de tempo]]></title>
                <link>https://eu.gabrielsv.com/blog/refatoracao-que-vale-a-pena-vs-refatoracao-que-e-perda-de-tempo</link>
                <description><![CDATA[Nem toda refatoração vale a pena e nem todo código feio precisa ser reescrito. Descubra quando gastar tempo refatorando e quando focar em entregar valor, sem checklist complicada ou teoria acadêmica.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Clean Code na prática: O que realmente faz diferença no dia a dia]]></title>
                <link>https://eu.gabrielsv.com/blog/clean-code-na-pratica-o-que-realmente-faz-diferenca-no-dia-a-dia</link>
                <description><![CDATA[Chega de teoria acadêmica. Aprenda como o Clean Code melhora a manutenibilidade e sua produtividade com nomes honestos, Early Return e refatoração na prática]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Stateless vs Stateful: Qual a melhor arquitetura de autenticação para o seu backend?]]></title>
                <link>https://eu.gabrielsv.com/blog/stateless-vs-stateful-qual-a-melhor-arquitetura-de-autenticacao-para-o-seu-backend</link>
                <description><![CDATA[Uma comparação técnica entre autenticação Stateful (Sessions) e Stateless (JWT), explicando fluxo, trade-offs, escalabilidade, segurança e exemplos práticos em Express para ajudar na decisão arquitetural]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Por que o PHP não morreu (e o Laravel é a prova disso)]]></title>
                <link>https://eu.gabrielsv.com/blog/por-que-o-php-nao-morreu</link>
                <description><![CDATA[Todo ano decretam a morte do PHP, mas a realidade é outra. Neste artigo, você entende por que o PHP moderno (8+) é rápido, tipado, seguro e como o Laravel elevou a produtividade e a experiência de desenvolvimento a outro nível em 2025]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[TypeScript: O mínimo que você precisa saber]]></title>
                <link>https://eu.gabrielsv.com/blog/typescript-basico-para-comecar</link>
                <description><![CDATA[O TypeScript não precisa ser complicado. Com apenas o básico, você já pode evitar os erros comuns do JavaScript e escrever código mais seguro e fácil de manter. Aprenda tipos básicos, inferência, arrays, objetos, funções e como usar o TypeScript no seu dia a dia]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Spring Boot: O básico que você esqueceu (ou nunca aprendeu direito)]]></title>
                <link>https://eu.gabrielsv.com/blog/spring-boot-guia-simples-api-rest</link>
                <description><![CDATA[Um guia direto e prático para quem está começando ou voltando ao Spring Boot. Veja como criar uma API REST funcional usando Java, Maven, H2 e o básico de controller, service, repository e entity sem enrolação, com exemplos reais.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[CSS Grid vs Flexbox: Quando usar cada um (guia honesto)]]></title>
                <link>https://eu.gabrielsv.com/blog/grid-ou-flexbox-quando-usar</link>
                <description><![CDATA[Flexbox ou Grid? Nesta explicação direta e sem enrolação, você aprende exatamente quando usar cada um, com exemplos reais, regras simples e comparações que facilitam seu dia a dia no CSS]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[Adeus XAMPP: Subindo um WordPress local com Docker em 5 minutos]]></title>
                <link>https://eu.gabrielsv.com/blog/wordpress-docker-compose</link>
                <description><![CDATA[Um guia prático (e real) mostrando como rodar um ambiente WordPress completo usando Docker em segundos, sem depender de XAMPP, WampServer ou qualquer gambiarra local]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
                    <item>
                <title><![CDATA[HTML para E-mail: Por que ainda usamos &lt;table> em 2025?]]></title>
                <link>https://eu.gabrielsv.com/blog/html-email-table-2025</link>
                <description><![CDATA[HTML pra e-mail é um universo paralelo onde nada evoluiu. Aqui eu conto por que table ainda manda em 2025 e mostro exemplos de como realmente montar layouts que não quebram.]]></description>
                <author><![CDATA[Gabriel <gabriel04gh1.gh@gmail.com>]]></author>
                <pubDate>Mon, 18 May 2026 18:02:41 +0000</pubDate>
                            </item>
            </channel>
</rss>
