Elegant News Aggregator 🚀
I built NewsAggr out of a simple personal need: a unified, distraction-free hub to keep up with the daily news.
This project is heavily based on ourongxing/newsnow. I used it as a starting point and modified the styles to fit my personal taste and added the specific data sources I was interested in.
- Clean & Elegant UI 🎨 - Designed for focus and readability.
- Real-time Updates ⚡ - News delivered instantly.
- Smart Caching 🤖 - Default 30-minute cache, with adaptive scraping intervals (min 2 mins) to respect source limits.
- OAuth Integration 🔒 - Log in seamlessly with Google or GitHub to sync your preferences.
- Responsive Design 📱 - Works on all devices and can be installed as a PWA.
- Dark Mode 🌙 - Support for dark mode.
- Bookmarks 🔖 - Save articles to read later.
- Font Selection ✒️ - Customize your reading experience with multiple font choices.
Want to see it in action? You can find the production version here: newsaggr.online
| Source | Category | Link |
|---|---|---|
| Arxiv AI | AI | Link |
| smol.ai | AI | Link |
| TechCrunch (AI) | AI | Link |
| Forbes | Entrepreneurship | Link |
| YC Blog | Entrepreneurship | Link |
| Wall Street Journal | Finance | Link |
| Yahoo Finance | Finance | Link |
| Crónica Balear | Mallorca | Link |
| Diario Mallorca | Mallorca | Link |
| Ultima Hora | Mallorca | Link |
| Nature | Science | Link |
| ScienceDaily | Science | Link |
| El Diario | Spain | Link |
| El Mundo | Spain | Link |
| El País | Spain | Link |
| Libertad Digital | Spain | Link |
| The Objective | Spain | Link |
| Engadget | Tech | Link |
| Github | Tech | Link |
| Hacker News | Tech | Link |
| TechCrunch | Tech | Link |
| The Information | Tech | Link |
| TLDR | Tech | Link |
| Wired | Tech | Link |
| BBC | World | Link |
| CNN | World | Link |
| Ground News | World | Link |
| NY Times | World | Link |
| Reuters | World | Link |
Want to run this locally? Easy. You just need Node.js >= 20 and pnpm.
# 1. Install dependencies
pnpm i
# 2. Start the dev server
pnpm dev
# 🚀 Running at http://localhost:5173The recommended way to deploy is Cloudflare Pages with a D1 Database. It's fast, cheap (often free), and scales infinitely.
- Fork this repo.
- Create a D1 Database in your Cloudflare dashboard.
- Update
wrangler.toml(or renameexample.wrangler.toml) with your DB details:[[d1_databases]] binding = "NEWSAGGR_DB" database_name = "your-db-name" database_id = "your-db-id"
For production, you'll need to set these variables in your Cloudflare Pages project settings:
GITHUB_CLIENT_ID&GITHUB_CLIENT_SECRET: For GitHub login.GOOGLE_CLIENT_ID&GOOGLE_CLIENT_SECRET: For Google login.JWT_SECRET: Random string for signing tokens.INIT_TABLE: Set totruefor the first deploy to create tables.ENABLE_CACHE:true(recommended).
To enable auto-deploys on every commit, you need to add these Secrets to your GitHub Repository settings:
CLOUDFLARE_API_TOKEN: Your Cloudflare API Token.CLOUDFLARE_ACCOUNT_ID: Your Cloudflare Account ID.
Once set, the included .github/workflows/test-and-deploy.yml will handle the rest!
Check out CONTRIBUTING.md for a deep dive on adding sources.
- More data sources 📡
- AI-powered summaries 🧠 (Maybe?)
Got a cool idea? Found a bug? Open a PR! We love contributions. See CONTRIBUTING.md for guidelines.
MIT © bertini36
Build with love from Mallorca 🌴
