このプロジェクトについて

GeeksPulseはオープンソースの開発者向けニュースアグリゲーターで、約50の厳選されたRSSおよびAtomフィードから記事を収集し、単一の高速なインターフェースで表示します。このプロジェクトは、広告、ペイウォール、広告トラッカーが一切ないと説明されており、個人の開発者によって構築・保守されています。 仕組み Node.jsビルドパイプライン(scripts/build-feed.mjsとscripts/lib/配下のモジュール)が設定されたフィードを取得して正規化し、静的JSONキャッシュをpublic/に書き込みます。フロントエンドはプレーンなHTML、CSS、バニラJavaScript ESモジュールで構成されているため、アプリケーションサーバーなしで静的ファイルとしてサイトを配信できます。GitHub Actionsワークフローがスケジュール(30分ごとと記載)でフィードビルドを実行し、キャッシュを最新に保ちます。事前ビルドされたフィードファイルが存在しないか空の場合、アプリはCORSプロキシを介してブラウザで直接フィードを取得するフォールバックを使用します。READMEでは、これは通常のロードパスではなく緊急パスとして説明されています。 コンテンツとカテゴリ フィードはdata/feeds.jsonにリストされ、11のカテゴリにグループ化されています:一般、セキュリティ、AI/ML、Python、JavaScript、Java、DevOps、オープンソース、Rust、Go、アーキテクチャ。名前付きソースには、Hacker News、Lobsters、Ars Technica、The Register、IEEE Spectrum、Krebs on Security、Bleeping Computer、Google AI Blog、Planet Python、JavaScript Weekly、DockerおよびKubernetesブログ、LWN.net、Rust Blog、Go Blog、Martin Fowler、Netflix Tech Blog、Cloudflare Blogなどが含まれます。フィードを追加するには、data/feeds.jsonを編集してキャッシュを再生成します。 機能 - グリッドおよびリストレイアウト(設定はlocalStorageに保存) - 1分から1時間までの設定可能な自動更新間隔 - オンデマンドのAI要約(事前キャッシュされたスニペットまたはローカルOllamaフォールバックを使用) - ローカルに保存されるブックマーク、カード上の推定読了時間 - キーボードショートカット:/で検索、j/kで移動、oで開く、rで更新、Escでクリア - 最終更新時刻とオンライン/失敗フィード数を表示するフィード健全性パネル - スケルトンローダー、Web Share APIによる共有(クリップボードフォールバック付き) - アクセシビリティ対応:ARIAロールとラベル、キーボードナビゲーション、prefers-reduced-motionサポート - ネオンアクセント、グリッチ、スキャンラインアニメーションを備えたサイバーパンクダークテーマ ビルド出力には、public/feed.json(新しい順に最大300件の重複排除記事)、public/feed-health.json、public/version.json、ホームページのみのsitemap.xml、およびindex.htmlに注入されるSEOフォールバック記事が含まれます。 テストとツール リポジトリには階層化されたテストスイートが文書化されています:Vitestユニット、統合、DOMテスト(171テストと報告)に加え、Chromiumに対するPlaywrightエンドツーエンドスモークテスト(10テスト)。ブラウザ側テストにはhappy-dom、V8カバレッジしきい値を使用します。CIパイプラインは、最初にテストを実行し、次にビルドとデプロイジョブ、その後エンドツーエンドテストを実行します。ユニットまたは統合テストの失敗はパイプラインをブロックします。開発では、開発サーバーおよび本番バンドラーとしてVite 6を使用し、ビルド時依存関係としてfast-xml-parserとollamaを使用します。 プライバシーとサポート READMEには、サイトが基本的なトラフィック分析にGoogle Analyticsを使用しているが、広告トラッカーはなく、ユーザーデータを販売したり広告をパーソナライズしたりしないと記載されています。プロジェクトは、Issueとプルリクエストによる貢献を受け付けており、オプションのPayPalサポートリンクも提供しています。