About The Front Page
What is this?
The Front Page is a free, non-commercial news aggregator that displays top headlines from credible news sources across 94 countries. It is completely static, uses Google Analytics for aggregate traffic measurement, has no ads, no algorithmic personalization, and no filter bubbles.
How are sources selected?
RSS feeds are pulled dynamically from an open-source repository:
This list is maintained by the community and includes newspapers, wire services, and broadcasters from around the world. Feeds with bot protection are automatically excluded since they cannot be reliably fetched.
Source Tiering
Sources are assigned to tiers based on their name. Higher-tier sources receive a ranking boost:
- Tier 0 (Wire Services & Public Broadcasters): Reuters, Associated Press, AFP, BBC, NPR, NHK, Deutsche Welle, Al Jazeera, Xinhua, Yonhap, TASS, ANSA, Kyodo, EFE, CBC, PBS, ABC News
- Tier 1 (Papers of Record): New York Times, Washington Post, The Guardian, Times of India, Le Monde, El País, Der Spiegel, The Economist, Financial Times, Wall Street Journal, Sydney Morning Herald, South China Morning Post, Straits Times, and others
- Tier 2 (Default): All other sources
Ranking Algorithm
Each headline is scored using a weighted formula:
| Factor | Weight | Description |
|---|---|---|
| Consensus | 35% | Stories covered by multiple sources score higher. Calculated as min(source_count × 3, 10). |
| Recency | 30% | Exponential decay with a 6-hour half-life. Formula: 10 × e^(-0.693 × hours / 6) |
| Source Tier | 20% | Higher-tier sources get more points: (5 - tier) × 2 |
| Importance | 15% | Keyword-based scoring (see below) |
Importance Keywords
Headlines containing certain keywords receive score adjustments:
Boosted (+6 to +10): breaking, urgent, emergency, killed, dead, death, war, attack, explosion, earthquake, president, prime minister, election, parliament, congress, law, recession, inflation, billion, protest, court, arrest
Penalized (-3 to -10): celebrity, kardashian, instagram, viral, meme, horoscope, "you won't believe", shocking
Additional penalties apply for excessive exclamation marks or ALL CAPS headlines.
Source Diversity
To avoid showing 3 headlines from the same outlet, repeated sources receive a 30% score penalty per occurrence. This means if a source's headlines rank #1, #2, and #3, the second headline's score is reduced to 70%, and the third to 49%, allowing other sources to compete.
Deduplication
Similar headlines are detected using sequence matching (difflib.SequenceMatcher). If two headlines have >55% similarity, only the higher-scoring one is shown. This prevents the same story from appearing multiple times with slightly different wording.
Translation
Non-English headlines are automatically translated using the deep-translator library, which uses Google Translate's free web API. Language detection is performed by the langdetect library. The original headline text and detected language are preserved and displayed below the translation.
Translation quality varies by language and is provided as a convenience, not a guarantee of accuracy.
Update Frequency
Headlines are refreshed every 2 hours via GitHub Actions. The timestamp at the bottom of the page shows when the current version was generated.
Technical Architecture
- Hosting: GitHub Pages (free, static hosting)
- Backend: None — the site is entirely static HTML/CSS/JSON
- Build System: Python scripts run by GitHub Actions
- RSS Parsing: feedparser library
- Async Fetching: aiohttp with max 50 concurrent connections
Privacy
- Google Analytics is enabled to measure aggregate traffic (page views, countries, devices). This uses cookies.
- No user accounts or personalization
- No third-party scripts except Google Fonts and Google Analytics
- We do not sell or share data with third parties beyond Google Analytics
Limitations
- RSS feed availability varies by country — some regions have fewer sources
- Some publications block automated access or require subscriptions
- Translation quality depends on Google Translate's capabilities for each language
- Source tiering is subjective and based on name pattern matching
- The importance keyword list reflects editorial judgment about newsworthiness
What This Site Does NOT Do
- No personalized recommendations or filter bubbles
- No engagement optimization (no "you might also like")
- No ads, sponsored content, or affiliate links
- No social media integration or share tracking
- No comments or user-generated content