Project

InTheLoop

June 1, 2024

pythonflaskjavascriptrssautomationweb-developmentfull-stack

InTheLoop on GitHub

Overview

InTheLoop is a self-hosted news aggregation platform built from scratch. It pulls articles from 70+ curated RSS sources across nine categories, surfaces trending topics from the past 24 hours using phrase-frequency analysis, and delivers a daily HTML email digest — all from a single Python/Flask codebase with no external dependencies beyond the standard library.

InTheLoop is the direct predecessor to Optio News, which extended this foundation into a multi-user production platform. The core architecture — feed management, trending engine, email scheduler, dark/light theming — originated here.

View Source on GitHub


What It Does

The app launches a local Flask server. On load, it fetches articles from all active RSS sources (cached for 30 minutes), runs a trending topic pass over the past 24 hours of content, and renders a category-filtered news feed with a live sidebar showing what’s gaining traction. Users can hide or restore individual feeds, add new sources from a curated library, and toggle dark/light theme — all preferences persisted across sessions.

At a configured time each day, the scheduler composes and sends an HTML-formatted digest email grouping all articles by category.


Core Features

News Feed

  • 70+ curated RSS sources across Technology, Finance, General News, Sports, Science, Business, Entertainment, Music, and Health
  • 27+ additional user-addable sources beyond the defaults
  • 30-minute article cache balancing freshness with server load
  • Live search across titles and summaries (Ctrl+K to focus, Esc to clear)
  • Category filter badges for instant topic focus
  • Dark/light theme toggle with persistent preference
  • Analyzes articles published in the past 24 hours across all active feeds
  • 2–3 word phrase detection with frequency scoring
  • Filtered against a 200+ word stopword list to surface signal over noise
  • Always-visible sidebar, scrolls independently from the main feed

Feed Management

  • View, hide, and restore individual feeds without permanent deletion
  • Browse and activate new sources from the curated available-feeds library
  • Search/filter feeds by name, URL, or category
  • Settings persisted via flat file (hidden_feeds.txt)

Daily Email Digest

  • HTML-formatted digest sent automatically via smtplib
  • Articles grouped by category for easy scanning
  • Configurable delivery time via the schedule library

Tech Stack

LayerTechnology
BackendPython 3.8+ / Flask
FrontendVanilla JavaScript, CSS3, HTML5
RSS Parsingfeedparser
Emailsmtplib with HTML templates
Schedulingschedule library
Icons / FontsFont Awesome 6, Google Fonts (Inter)

Relationship to Optio News

InTheLoop established the core product model: curated RSS sources, trending phrase extraction, daily email digests, and dark/light theming. Optio News extended this into a multi-user platform with authentication, per-user feed preferences stored in a database, and public production deployment at optio.news. The underlying ideas are the same; the execution is a generation ahead.