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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.