Daily Brief is designed around a modern GitOps Backend architecture. Rather than paying for costly backend servers or hitting third-party APIs that can rate-limit your users, this project uses GitHub Actions to run an automated news ingestion engine.
- Automated RSS Pipeline: Every 30 minutes, a headless script scrapes ~50 of the world's most reputable niche news publishers (BBC, WSJ, MacRumors, IGN, etc.).
- Aggressive Deduplication: The engine runs a strict cross-category global deduplication algorithm, ensuring only 100% unique, high-quality stories make it through.
- Static API Delivery: It compiles the data into chunked monthly JSON databases (
public/data/news-YYYY-MM.json). The frontend fetches only what it needs, keeping the initial load lightning fast.
Because it's completely static and served via GitHub's CDN, the hosting cost is $0, the page load is near instantaneous, and the architecture is bulletproof against scaling issues.
- 100% Automated Serverless Architecture: Powered entirely by GitHub Actions and Pages.
- Premium UI / UX: Beautiful glassmorphism, dynamic dark/light mode, smooth micro-animations, and full ultrawide monitor support.
- Strict Deduplication Engine: Automatically detects and purges identical wire stories across different publishers.
- Client-Side Read Receipts: Instantly dims articles you have already clicked on using privacy-first LocalStorage.
- Infinite Data Sharding: Automatically groups articles into monthly chunks so you can scroll infinitely without hitting browser memory limits.
- Customizable Layout: Drag-and-drop category chips to reorder your news feed exactly how you like it.
- PWA Ready: Implements a Service Worker for intelligent caching and offline resiliency.
sequenceDiagram
participant RSS as Global RSS Feeds
participant Action as GitHub Actions
participant Repo as JSON Database
participant CDN as GitHub Pages
participant Client as User Browser
Note over RSS, Action: Scheduled every 30 minutes
Action->>RSS: Fetch and parse XML streams
Action->>Action: Deduplicate and sanitize data
Action->>Repo: Save monthly chunks (news-*.json)
Repo->>CDN: Deploy `public/` artifact directly
Client->>CDN: Request website
CDN-->>Client: Serve static assets instantly
/
├── .github/workflows/
│ └── update-rss.yml # Action for RSS updates (runs every 30 mins)
├── public/ # The production website deployed to GitHub Pages
│ ├── css/
│ ├── js/
│ ├── data/ # Monthly static JSON APIs
│ ├── index.html
│ ├── manifest.json
│ └── ServiceWorker.js
├── src/ # Backend Node.js tooling
│ └── scripts/
│ └── fetch-rss.js # Automated aggregation script
└── package.json # Node dependencies (rss-parser)
Want to run your own version of Daily Brief?
- Fork or Clone the Repository: Clone this repository to your own GitHub account.
- Customize News Sources (Optional): Edit the
public/data/rss-feeds.jsonfile to add or remove RSS feeds. No API keys are required! - Enable GitHub Pages via Actions:
- Go to Settings > Pages in your repository.
- Under "Build and deployment", set the Source to GitHub Actions.
- Trigger the First Update:
- Go to the Actions tab.
- Select the "Fetch RSS News (Every 30 Mins)" workflow.
- Click Run workflow to generate your first data chunks and deploy the site!
If you would like to learn more about the specific technologies powering this architecture, refer to the official documentation below:
- GitHub Actions - Used for serverless cron automation and backend execution.
- GitHub Pages - Used for high-speed edge caching and global CDN hosting.
- Node.js - Powers the backend ingestion engine.
- rss-parser - Handles robust XML parsing and data extraction.
This project is licensed under the MIT License - see the LICENSE file for details.