À propos du projet

GeeksPulse est un agrégateur de nouvelles pour développeurs, open source, qui collecte des articles provenant d'environ 50 flux RSS et Atom sélectionnés manuellement et les présente dans une interface unique et rapide. Le projet se décrit comme exempt de publicités, de paywalls et de traceurs publicitaires, et est construit et maintenu par un développeur individuel. Fonctionnement Un pipeline de construction Node.js (scripts/build-feed.mjs plus des modules sous scripts/lib/) récupère et normalise les flux configurés, puis écrit des caches JSON statiques dans public/. Le frontend est en HTML simple, CSS et modules JavaScript ES vanille, donc le site peut être servi comme fichiers statiques sans serveur applicatif. Un workflow GitHub Actions exécute la construction du flux selon un calendrier (documenté comme toutes les 30 minutes) pour maintenir le cache à jour. Si le fichier de flux pré-construit est manquant ou vide, l'application revient à récupérer les flux directement dans le navigateur via des proxys CORS ; le README décrit cela comme un chemin d'urgence plutôt que le chemin de chargement normal. Contenu et catégories Les flux sont listés dans data/feeds.json et regroupés en 11 catégories : Général, Sécurité, IA/ML, Python, JavaScript, Java, DevOps, Open Source, Rust, Go et Architecture. Les sources nommées incluent Hacker News, Lobsters, Ars Technica, The Register, IEEE Spectrum, Krebs on Security, Bleeping Computer, Google AI Blog, Planet Python, JavaScript Weekly, blogs Docker et Kubernetes, LWN.net, Rust Blog, Go Blog, Martin Fowler, Netflix Tech Blog et Cloudflare Blog, entre autres. Ajouter un flux signifie éditer data/feeds.json et régénérer le cache. Fonctionnalités - Mises en page en grille et en liste avec préférence stockée dans localStorage - Intervalles d'actualisation automatique configurables de 1 minute à 1 heure - Résumés IA à la demande, utilisant des extraits pré-mis en cache ou un repli local Ollama - Signets enregistrés localement, plus temps de lecture estimé sur les cartes - Raccourcis clavier : / pour rechercher, j/k pour naviguer, o pour ouvrir, r pour actualiser, Échap pour effacer - Panneau de santé des flux montrant l'heure de dernière mise à jour et les compteurs de flux en ligne/échoués - Chargeurs de squelette, partage via l'API Web Share avec repli presse-papiers - Travail d'accessibilité : rôles et étiquettes ARIA, navigation clavier, prise en charge de prefers-reduced-motion - Thème sombre cyberpunk avec accents néon, animations de glitch et de scanline Les sorties de construction incluent public/feed.json (jusqu'à 300 articles dédupliqués triés du plus récent au plus ancien), public/feed-health.json, public/version.json, un sitemap.xml uniquement pour la page d'accueil, et des articles de repli SEO injectés dans index.html. Tests et outils Le référentiel documente une suite de tests en couches : tests unitaires, d'intégration et DOM Vitest (signalés comme 171 tests) plus des tests de fumée de bout en bout Playwright (10 tests) contre Chromium, avec happy-dom pour les tests côté navigateur et des seuils de couverture V8. Le pipeline CI exécute d'abord les tests, puis le travail de construction et de déploiement, puis les tests de bout en bout ; un test unitaire ou d'intégration échoué bloque le pipeline. Le développement utilise Vite 6 comme serveur de développement et bundler de production, avec fast-xml-parser et ollama comme dépendances de construction. Confidentialité et support Le README indique que le site utilise Google Analytics pour des informations de trafic de base mais aucun traceur publicitaire, et ne vend pas de données utilisateur ni ne personnalise les publicités. Le projet accepte les contributions via des problèmes et des demandes de tirage et offre un lien de support PayPal facultatif.