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 throughapi/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
- Europe
- Middle East
- Africa
- Asia-Pacific
- Latin America
- Eastern Europe
- Other Languages
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:- Direct fetch attempted - Standard HTTP request
- Railway relay fallback - If direct fails, routes through relay
- 5-minute cooldown - Failed feed pauses before retry
- Other feeds unaffected - Per-feed isolation
- 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
Related Resources
Data Sources Overview
Complete data source catalog
External APIs
API integration specifications