Skip to main content

Overview

World Monitor aggregates 150+ RSS feeds across geopolitics, defense, energy, tech, and finance. Each variant loads its own curated feed set:
  • Geopolitical variant: ~25 categories
  • Tech variant: ~20 categories
  • Finance variant: ~18 categories
  • Happy variant: Positive news sources

RSS Proxy Architecture

All RSS feeds are proxied through /api/rss-proxy to prevent CORS issues. The proxy:
  • Domain allowlist - Only whitelisted domains are permitted (security)
  • Automatic fallback - Direct fetch → Railway relay on failure
  • Per-feed circuit breakers - Failing feeds don’t affect others
  • 5-minute polling - Each feed refreshed independently
  • 10-minute cooldown - Failed feeds pause before retry
The proxy implements a dual-fetch strategy: attempts direct connection first, then falls back to the Railway relay server if the direct fetch fails.

Allowed Domains

The following domains are permitted through api/rss-proxy.js (lines 48-326):

International News

Geopolitical & Defense

Think Tanks & Research

Technology & Cybersecurity

Venture Capital & Startups

Regional Startup News

Finance & Markets

U.S. Government

International Organizations

Regional & Language-Specific

Security Advisories

Maritime & Aviation

Positive News (Happy Variant)

Community & Discussion

Feed Processing

Instant Flat Render

News items appear immediately as a flat list the moment feed data arrives. ML-based clustering (topic grouping, entity extraction, sentiment analysis) runs asynchronously in the background and progressively upgrades the view.

Virtual Scrolling

News panels with 15+ items use a custom virtual list renderer:
  • Only visible items + 3-item overscan buffer are rendered
  • requestAnimationFrame-batched scroll handling
  • DOM element pooling and recycling
  • Responsive adaptation via ResizeObserver

Custom Keyword Monitors

User-defined keyword alerts with:
  • Word-boundary matching (prevents “ai” from matching “train”)
  • Automatic color-coding from 10-color palette
  • Multi-keyword support (comma-separated)
  • Real-time match counts
  • Search across titles and descriptions

Blocked Domains

The following domains are explicitly blocked (deprecated sources):
  • rsshub.app - Returns 410 Gone (stale clients still request these)

Circuit Breaker Behavior

When an RSS feed fails:
  1. Direct fetch attempted - Standard HTTP request
  2. Railway relay fallback - If direct fails, routes through relay
  3. 5-minute cooldown - Failed feed pauses before retry
  4. Other feeds unaffected - Per-feed isolation
  5. Automatic recovery - Resumes after cooldown expires

Feed Deduplication

Headlines are deduplicated before LLM summarization:
  • Jaccard similarity threshold of 0.6 (60% word overlap)
  • Reduces prompt size by 20-40%
  • Prevents LLM waste on repeated stories

Data Sources Overview

Complete data source catalog

External APIs

API integration specifications