Project
Optio News
Optio News is live at optio.news — a full-stack personalized news platform built from scratch.



Overview
Most news apps show you what they think you should read. Optio flips that: you pick your sources, you own your feed. I designed and shipped Optio News as a production full-stack web application that aggregates RSS feeds from 70+ curated sources across nine categories, surfaces trending topics algorithmically, and delivers daily email digests — all without reaching for a framework or a managed backend.
This is the kind of project I’m most proud of: a real product, deployed and working, touching every layer of the stack with zero shortcuts.
View Source on GitHub · Live at optio.news
What It Does
Users authenticate, then build a personalized dashboard by selecting from a library of RSS sources. The app fetches, caches, and displays articles in real time. A trending topics engine analyzes the past 24 hours of content across all feeds and extracts the phrases gaining the most traction — not just individual keywords, but 2–3 word phrases, filtered against a 200+ word stopword list to surface signal over noise.
At a configured time each day, the app composes and sends an HTML-formatted email digest to each user summarizing their feeds. The whole system runs on a scheduler that handles feed refreshes, cache expiry, and email delivery without any managed infrastructure.
Core Features
Personalized Feed Dashboard
- 70+ curated RSS sources across technology, finance, sports, science, business, entertainment, music, and health
- 27+ additional user-addable feeds beyond the defaults
- Feed hiding (temporary suppression without permanent deletion) for flexible curation
- Real-time client-side article search across the current feed view
Trending Topics Engine
- Analyzes articles published in the past 24 hours across all active feeds
- Keyword frequency analysis with 2–3 word phrase detection
- Filters results against a 200+ word stopword list to eliminate noise
- Surfaces genuinely trending topics, not just high-frequency words
Daily Email Digests
- HTML-formatted digest emails composed and sent automatically via
smtplib - User-configurable delivery time
- Covers all of the user’s active feeds in a clean, scannable layout
Technical Infrastructure
- 30-minute article cache balancing freshness with server load
- Cross-platform scheduling via Windows Task Scheduler or Linux cron
- Authentication system with login and registration flows
- Dark/light theme toggle that persists across sessions and through the auth flow
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Python 3.8+ / Flask |
| Frontend | Vanilla JavaScript, HTML5, CSS3 |
| RSS Parsing | feedparser |
| Email Delivery | smtplib with HTML templates |
| Scheduling | schedule library |
| Icons / Fonts | Font Awesome 6, Google Fonts (Inter) |
No heavy framework dependencies. Full ownership of every layer: routing, feed logic, caching, email templating, scheduling, theming, and client-side interactivity — all in a single cohesive codebase.
Why It Stands Out
Most portfolio projects demonstrate CRUD. Optio demonstrates product thinking at every layer:
- Algorithmic feature — the trending engine uses phrase extraction with stopword filtering, not a generic word count. It’s designed to produce something actually useful.
- Async scheduling — email delivery and cache refresh run on a real scheduler, not a button. It behaves like production software.
- Shipped, not shelved — it’s live at optio.news, accessible to anyone, with real authentication. The gap between “demo” and “deployed” is where most projects die; this one made it across.
- No framework crutch — Flask on the backend, vanilla JS on the frontend. Every behavior is intentional, not inherited.