<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Rafael Zingano</title><description>Desenvolvedor back-end com mais de 20 anos de experiência em desenvolvimento e gestão. Especialista em PHP e Laravel, arquitetura de software e sistemas de alta escalabilidade.</description><link>https://rafazingano.com.br/</link><language>pt-BR</language><item><title>Em andamento: CRM com Kanban e integrações por vertical</title><link>https://rafazingano.com.br/projetos/atendus/atendus-crm-e-verticais/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-crm-e-verticais/</guid><description>A agenda mostrou que o valor está em resolver, não em responder. O que está sendo construído agora leva essa ideia adiante: acompanhar o cliente depois da conversa, e falar a língua de cada ramo em vez de servir a todos igual.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>Atendus</category><category>CRM</category><category>Produto</category><category>Roadmap</category><category>Integrações</category></item><item><title>250 prompts depois: o que ficou e o que vem</title><link>https://rafazingano.com.br/projetos/prompto/prompto-hoje-e-o-que-vem/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/prompto/prompto-hoje-e-o-que-vem/</guid><description>A biblioteca passou de 250 prompts publicados em 15 categorias. O que mais mudou não foi o produto, foi entender o que as pessoas realmente procuram — e isso definiu as duas frentes seguintes.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>Prompto</category><category>Produto</category><category>Roadmap</category></item><item><title>Deploy no edge com URLs limpas e dois domínios</title><link>https://rafazingano.com.br/projetos/rafazingano-com-br/site-deploy-cloudflare/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/rafazingano-com-br/site-deploy-cloudflare/</guid><description>Um Worker sem código, servindo arquivos estáticos do edge da Cloudflare. O detalhe que dá trabalho não é o deploy: é fazer `/sobre` responder sem `.html` e sem barra final, e o segundo domínio redirecionar sem custar invocação.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate><category>rafazingano.com.br</category><category>Cloudflare</category><category>Workers</category><category>Deploy</category><category>DNS</category></item><item><title>RAG na prática: busca vetorial com PHP, PostgreSQL e pgvector</title><link>https://rafazingano.com.br/blog/rag-na-pratica-busca-vetorial-php-postgresql-pgvector/</link><guid isPermaLink="true">https://rafazingano.com.br/blog/rag-na-pratica-busca-vetorial-php-postgresql-pgvector/</guid><description>Como dar ao modelo acesso ao conhecimento da sua empresa sem fine-tuning e sem banco vetorial dedicado. Chunking, embeddings, índice HNSW, busca híbrida e o custo real de indexar mil documentos.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><category>Inteligência Artificial</category><category>Inteligência Artificial</category><category>RAG</category><category>PostgreSQL</category><category>pgvector</category><category>Embeddings</category><category>PHP</category></item><item><title>CI/CD minimalista com GitHub Actions: pipeline completo para projetos PHP</title><link>https://rafazingano.com.br/blog/cicd-minimalista-github-actions-php/</link><guid isPermaLink="true">https://rafazingano.com.br/blog/cicd-minimalista-github-actions-php/</guid><description>Um pipeline que roda em menos de dois minutos, pega o que precisa ser pego e cabe em um arquivo. Cache de Composer que acerta a chave, Pest com cobertura, PHPStan, serviços de banco e deploy com OIDC em vez de chave estática.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate><category>DevOps</category><category>CI/CD</category><category>GitHub Actions</category><category>PHP</category><category>Laravel</category><category>Docker</category></item><item><title>Content collections, busca sem servidor e capas geradas no build</title><link>https://rafazingano.com.br/projetos/rafazingano-com-br/site-conteudo-e-busca/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/rafazingano-com-br/site-conteudo-e-busca/</guid><description>Publicar um post virou criar um arquivo. A busca roda inteira no navegador, sem backend e sem serviço pago. E cada artigo ganha um card social gerado automaticamente, sem eu abrir editor de imagem.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><category>rafazingano.com.br</category><category>Astro</category><category>MDX</category><category>Pagefind</category><category>SEO</category></item><item><title>Versão 2 no ar: omnichannel de verdade, agenda e planos</title><link>https://rafazingano.com.br/projetos/atendus/atendus-versao-2/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-versao-2/</guid><description>Cinco meses de feedback dos 12 primeiros clientes viraram a segunda versão. O atendimento deixou de ser só WhatsApp, o agente passou a marcar horário, e a plataforma ganhou a estrutura comercial para escalar sem mim no meio.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Atendus</category><category>Produto</category><category>Omnichannel</category><category>Lançamento</category></item><item><title>Hyperf na prática: PHP assíncrono com corrotinas para APIs de alta carga</title><link>https://rafazingano.com.br/blog/hyperf-na-pratica-php-assincrono-corrotinas/</link><guid isPermaLink="true">https://rafazingano.com.br/blog/hyperf-na-pratica-php-assincrono-corrotinas/</guid><description>O modelo do PHP-FPM tem um teto, e ele aparece antes do que a maioria imagina. Como o Hyperf usa corrotinas e pool de conexões para levantar esse teto, o que muda no seu código — e as armadilhas que derrubam quem vem do FPM.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><category>Hyperf</category><category>Hyperf</category><category>PHP</category><category>Swoole</category><category>Corrotinas</category><category>Performance</category></item><item><title>Eloquent e o problema N+1: como detectar, medir e eliminar</title><link>https://rafazingano.com.br/blog/eloquent-problema-n-mais-1-detectar-medir-eliminar/</link><guid isPermaLink="true">https://rafazingano.com.br/blog/eloquent-problema-n-mais-1-detectar-medir-eliminar/</guid><description>A consulta que vira 500 queries sem ninguém perceber. Como identificar o N+1 no Laravel, corrigir com eager loading, tratar os casos que `with()` não resolve — e reconhecer as vezes em que carregar tudo de uma vez piora.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>Laravel</category><category>Laravel</category><category>Eloquent</category><category>Performance</category><category>MySQL</category></item><item><title>88 design tokens, do JavaScript para o CSS</title><link>https://rafazingano.com.br/projetos/rafazingano-com-br/site-tokens-tailwind-4/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/rafazingano-com-br/site-tokens-tailwind-4/</guid><description>Migrar o tema do `tailwind.config.js` para o bloco `@theme` do Tailwind 4 não foi só troca de sintaxe: transformou cada token numa custom property, o que deixou o tema escuro pronto para ser ligado sem tocar em componente nenhum.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><category>rafazingano.com.br</category><category>Tailwind CSS</category><category>Design System</category><category>CSS</category></item><item><title>De nove HTMLs duplicados a 21 componentes</title><link>https://rafazingano.com.br/projetos/rafazingano-com-br/site-layouts-em-componentes/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/rafazingano-com-br/site-layouts-em-componentes/</guid><description>O header estava copiado nove vezes, com nove variações — seis delas com o mesmo bug de layout. Transformar layout em sistema é menos sobre escrever componente e mais sobre descobrir o que realmente se repete.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate><category>rafazingano.com.br</category><category>Astro</category><category>Componentização</category><category>Refatoração</category></item><item><title>PHP 8 moderno: 10 recursos que aposentam seu código legado</title><link>https://rafazingano.com.br/blog/php-8-moderno-recursos-que-aposentam-codigo-legado/</link><guid isPermaLink="true">https://rafazingano.com.br/blog/php-8-moderno-recursos-que-aposentam-codigo-legado/</guid><description>Enums, readonly, match, property hooks e mais. Um tour prático pelos recursos do PHP 8 que substituem padrões que a gente escreve no automático desde o PHP 5 — com o antes e o depois de cada um.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><category>PHP</category><category>PHP</category><category>PHP 8</category><category>Boas Práticas</category><category>Refatoração</category></item><item><title>Por que refazer o site, e as regras que me impus</title><link>https://rafazingano.com.br/projetos/rafazingano-com-br/site-por-que-refazer/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/rafazingano-com-br/site-por-que-refazer/</guid><description>Todo site pessoal de programador vira ou um WordPress abandonado ou um projeto eterno. Comecei escrevendo as restrições antes de escrever código — e foram elas que definiram a stack, não o contrário.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>rafazingano.com.br</category><category>Arquitetura</category><category>Decisão Técnica</category></item><item><title>O humano assume a conversa a qualquer momento</title><link>https://rafazingano.com.br/projetos/atendus/atendus-humano-no-controle/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-humano-no-controle/</guid><description>Automatizar tudo é a promessa fácil e a decepção garantida. O que os clientes precisavam era do contrário: IA atendendo por padrão, com um humano capaz de assumir no meio da frase sem que o cliente perceba a costura.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate><category>Atendus</category><category>Produto</category><category>Atendimento</category><category>Multi-usuário</category></item><item><title>A base de conhecimento, e o limite do prompt</title><link>https://rafazingano.com.br/projetos/atendus/atendus-base-de-conhecimento/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-base-de-conhecimento/</guid><description>Cada empresa tem catálogo, política, procedimento e exceção que o agente precisa saber. Enfiar tudo no prompt não funciona: estoura contexto, fica caro e a qualidade cai conforme o texto cresce.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate><category>Atendus</category><category>Inteligência Artificial</category><category>RAG</category><category>Base de Conhecimento</category></item><item><title>O construtor de agentes, ou por que um campo de texto não basta</title><link>https://rafazingano.com.br/projetos/atendus/atendus-construtor-de-agentes/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-construtor-de-agentes/</guid><description>&quot;O agente responde bem, mas não fala como a gente&quot; foi a reclamação número um do MVP. A resposta não foi um prompt melhor: foi transformar personalização em controle fino, configurável pelo cliente e sem uma linha de código.</description><pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate><category>Atendus</category><category>Inteligência Artificial</category><category>Produto</category><category>Engenharia de Prompt</category></item><item><title>MVP em produção com 12 clientes</title><link>https://rafazingano.com.br/projetos/atendus/atendus-mvp-producao/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-mvp-producao/</guid><description>Três meses depois do primeiro commit, a plataforma foi ao ar com 12 clientes pagantes. O objetivo não era faturamento: era ter gente de verdade usando para descobrir o que a gente tinha errado.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate><category>Atendus</category><category>MVP</category><category>Produção</category><category>Validação</category></item><item><title>No ar no mesmo mês: por que não usei Laravel</title><link>https://rafazingano.com.br/projetos/prompto/prompto-no-ar-em-um-mes/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/prompto/prompto-no-ar-em-um-mes/</guid><description>Um desenvolvedor PHP de quinze anos escolhendo React Router e Cloudflare para um projeto próprio. Não foi curiosidade: foi a única forma de ir do zero ao ar em um mês sem infraestrutura para cuidar depois.</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate><category>Prompto</category><category>React Router</category><category>Cloudflare</category><category>Arquitetura</category><category>Decisão Técnica</category></item><item><title>Três camadas: app, worker e um microsserviço por canal</title><link>https://rafazingano.com.br/projetos/atendus/atendus-arquitetura/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-arquitetura/</guid><description>A decisão de arquitetura que sustentou tudo que veio depois. O núcleo não sabe que WhatsApp existe: cada canal tem seu próprio microsserviço no edge da Cloudflare, que traduz o mundo de fora para um formato único.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate><category>Atendus</category><category>Arquitetura</category><category>Laravel</category><category>Cloudflare Workers</category><category>Microsserviços</category></item><item><title>O prompt que funcionou e ninguém acha de novo</title><link>https://rafazingano.com.br/projetos/prompto/prompto-o-problema/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/prompto/prompto-o-problema/</guid><description>Todo mundo que usa IA todo dia tem a mesma pasta bagunçada: prompts bons espalhados por conversas antigas, blocos de nota e mensagens de WhatsApp. O Prompto nasceu desse incômodo — pequeno, chato e universal.</description><pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate><category>Prompto</category><category>Produto</category><category>Inteligência Artificial</category></item><item><title>O começo, e a decisão de não usar plataforma pronta</title><link>https://rafazingano.com.br/projetos/atendus/atendus-o-comeco/</link><guid isPermaLink="true">https://rafazingano.com.br/projetos/atendus/atendus-o-comeco/</guid><description>A Atendus nasceu de um problema nosso: atender clientes no WhatsApp sem perder mensagem. Existiam plataformas prontas — e foi justamente ao testá-las que ficou claro que nenhuma resolvia o que a gente precisava.</description><pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate><category>Atendus</category><category>Produto</category><category>Decisão Técnica</category><category>WhatsApp</category></item></channel></rss>