I Built TrumpDaily to Track Donald Trump Without the Noise
Look, tracking Trump is exhausting. The man dominates headlines across BBC, Guardian, NPR, Al Jazeera, and even Babylon Bee. Checking 10+ ...

Look, tracking Trump is exhausting. The man dominates headlines across BBC, Guardian, NPR, Al Jazeera, and even Babylon Bee. Checking 10+ sites daily? No thanks. So I built Trump Daily! It's a self-hosted RSS aggregator that dumps everything into one clean interface. https://trumpdaily.site was born!
And honestly? This was the most fun I've had coding in months a few years ago.
The Stack (Or: Why I Chose Boring Tech)
- Backend: Python/Flask (yes, I love it!)
- Database: PostgreSQL
- Cache: Redis (for literally everything)
- Tasks: Celery (background RSS fetching)
- Frontend: Vanilla JS (no React, fight me)
- Deploy: Docker Compose (one command, done)
The whole thing is ~1,000 lines of Python and 400 lines of JS. Runs locally. No tracking (Just Google Analytics). No cloud bills. No bullshit.
How It Works
RSS Feeds → Celery → Keywords → PostgreSQL → Flask API → Browser
↓
(Funny? Political? Serious?)
Every 5 minutes, Celery fetches feeds and categorizes articles using keyword matching:
- "investigation" + "indictment" = Serious
- "ridiculous" + "bizarre" = Funny
- "tariff" + "trade war" = Economic
Simple regex, ~85% accuracy. No ML needed.
Why This Was Ridiculously Fun
1. It Actually Works
Unlike most side projects that collect dust, I use this every morning. Building something you genuinely need hits different.
2. Vanilla JS is Liberating
No webpack. No babel. No 500MB node_modules. Just 400 lines of JavaScript that load instantly. The frontend filters 500+ articles client-side without breaking a sweat.
3. Docker Compose is Magic
One docker compose up -d spins up 5 services (nginx, flask, postgres, redis, celery). Zero configuration hell.
4. Python Gets Shit Done
Weekend project → Working prototype in 3 days. The ecosystem (feedparser, SQLAlchemy, Celery) just works. Zero library bugs.
The Trade-Offs (Or: What If I Used Go/Rust?)
Python's not fast. Let's be real:
| Language | RSS Parsing | Memory | Dev Time |
|---|---|---|---|
| Python | 15-30s | ~600MB | 3 days |
| Go | 3-5s | ~50MB | 5-7 days |
| Rust | 2-4s | ~30MB | 9-15 days |
| Node.js | 12-25s | ~500MB | 3 days |
| Bun | 5-8s | ~200MB | 3 days |
Could Go parse feeds 10x faster? Yes.
Would it matter? Hell no.
The app already feels instant. RSS updates every 5 minutes. Who cares if ingestion takes 15 seconds vs 3 seconds? I'm not running Twitter here.
When I'd Choose Differently
- 10,000 concurrent users? Go or Rust.
- Real-time WebSockets? Elixir/Phoenix.
- $5/month VPS? Go (lower memory).
- Already know Rust? Use what you know.
But for a single-user, self-hosted tool? Python is perfect.
Best Decisions
- Client-side filtering - Load all 500 articles, filter in browser. Fast and simple.
- Docker Compose - No Kubernetes complexity for a personal project.
- No frameworks - Vanilla JS loads in milliseconds, no build step.
- PostgreSQL - Proper indexes, no SQLite locking drama.
- Privacy-first - Runs locally, zero tracking, zero cloud.
Worst Decisions
- No full-text search - PostgreSQL LIKE is basic, but good enough.
- No real-time updates - Articles refresh every 5 min, not live.
- Memory usage - 600MB is overkill for this, but who cares.
Want to Contribute?
The repo is private on GitHub, but I'm happy to add collaborators. If you want to:
- Explore the code
- Contribute features
- Fork it for your own aggregator
Just send me your GitHub username or your email address. I kept it private to avoid spam, but I love collaboration.
Lessons Learned
- Boring tech wins - Flask, PostgreSQL, Redis are boring. They're also battle-tested and predictable.
- Client-side rendering is underrated - Modern browsers are fast. Use them.
- Docker Compose > Kubernetes - For small projects, K8s is insane overkill.
- Vanilla JS is enough - React/Vue are great, but unnecessary complexity for simple UIs.
- RSS isn't dead - Simple, standardized, no API keys, just works.
The Verdict
Python was absolutely the right choice. Not because it's fast (it's not), but because:
- I shipped in 3 hours with Github Co-Pilot
- The code is readable
- Performance is "good enough"
- I actually enjoy maintaining it
Could Go be 10x faster? Sure. Would it matter? Nope.
Pick tools that let you ship fast, solve the problem, and don't over-engineer.
Tech: Python, Flask, PostgreSQL, Redis, Celery, Vanilla JS
Lines of Code: ~1,400 total
Dev Time: 3 hour with Github Co-Pilot
Deploy: docker compose up -d
Status: Private repo, collaborators welcome
2026. Built it, shipped it, use it daily. This is how side projects should feel.
More from Ercan
Two more sites, same author, different ground.
AI, LLMs, agents, applied ML.
Field notes on AI workloads. Bedrock cost analysis, agent patterns, vector storage trade-offs, production failure modes.
Visit ercan.ai →The hub. About, consulting, contact.
Personal hub for both writing tracks. Who I am, how the consulting works, how to reach me.
Visit ercanermis.com →