Sobre o projeto

GeeksPulse é um agregador de notícias para desenvolvedores de código aberto que coleta artigos de aproximadamente 50 feeds RSS e Atom selecionados manualmente e os apresenta em uma interface única e rápida. O projeto se descreve como livre de anúncios, paywalls e rastreadores de publicidade, sendo construído e mantido por um desenvolvedor individual. Como funciona Um pipeline de build em Node.js (scripts/build-feed.mjs, além de módulos em scripts/lib/) busca e normaliza os feeds configurados e, em seguida, grava caches JSON estáticos em public/. O frontend é HTML puro, CSS e módulos ES de JavaScript vanilla, permitindo que o site seja servido como arquivos estáticos, sem um servidor de aplicação. Um workflow do GitHub Actions executa o build dos feeds em um agendamento (documentado como a cada 30 minutos) para manter o cache atualizado. Se o arquivo de feed pré-construído estiver ausente ou vazio, o aplicativo recorre à busca direta de feeds no navegador por meio de proxies CORS; o README descreve isso como um caminho de emergência, e não como o caminho normal de carregamento. Conteúdo e categorias Os feeds estão listados em data/feeds.json e agrupados em 11 categorias: Geral, Segurança, IA/ML, Python, JavaScript, Java, DevOps, Open Source, Rust, Go e Arquitetura. Fontes nomeadas incluem Hacker News, Lobsters, Ars Technica, The Register, IEEE Spectrum, Krebs on Security, Bleeping Computer, Google AI Blog, Planet Python, JavaScript Weekly, blogs de Docker e Kubernetes, LWN.net, Rust Blog, Go Blog, Martin Fowler, Netflix Tech Blog e Cloudflare Blog, entre outros. Adicionar um feed significa editar data/feeds.json e regenerar o cache. Recursos - Layouts em grade e lista, com a preferência armazenada em localStorage - Intervalos de atualização automática configuráveis, de 1 minuto a 1 hora - Resumos de IA sob demanda, usando trechos pré-cacheados ou um fallback local via Ollama - Marcadores salvos localmente, além de tempo estimado de leitura nos cartões - Atalhos de teclado: / para pesquisar, j/k para navegar, o para abrir, r para atualizar, Esc para limpar - Painel de saúde dos feeds, mostrando o horário da última atualização e contagens de feeds online/com falha - Loaders skeleton, compartilhamento via Web Share API com fallback para área de transferência - Trabalho de acessibilidade: papéis e rótulos ARIA, navegação por teclado, suporte a prefers-reduced-motion - Tema escuro cyberpunk com acentos neon, animações de glitch e scanline Os artefatos do build incluem public/feed.json (até 300 artigos deduplicados, classificados do mais novo para o mais antigo), public/feed-health.json, public/version.json, um sitemap.xml apenas para a página inicial e artigos de SEO de fallback injetados em index.html. Testes e ferramentas O repositório documenta uma suíte de testes em camadas: testes unitários, de integração e de DOM com Vitest (relatados como 171 testes), além de testes de fumaça end-to-end com Playwright (10 testes) contra Chromium, usando happy-dom para testes no lado do navegador e limites de cobertura V8. O pipeline de CI executa os testes primeiro, depois o job de build e deploy e, em seguida, os testes end-to-end; uma falha em um teste unitário ou de integração bloqueia o pipeline. O desenvolvimento usa Vite 6 como servidor de desenvolvimento e bundler de produção, com fast-xml-parser e ollama como dependências de tempo de build. Privacidade e suporte O README afirma que o site usa Google Analytics para insights básicos de tráfego, mas sem rastreadores de publicidade, e não vende dados de usuários nem personaliza anúncios. O projeto aceita contribuições por meio de issues e pull requests e oferece um link opcional de suporte via PayPal.