Real-time global news monitor for journalists and OSINT analysts. 668 vetted sources across six platforms, surfaced through frequency-based surge detection rather than engagement ranking.
Live at news-pulse.org.
- Real-time feed from 668 vetted sources: Bluesky, RSS, Telegram, Reddit, YouTube and Mastodon
- Surge detection — flags 2x and 4x posting spikes against rolling baselines, so volume tells the story instead of engagement
- Six-region world clock with independent activity baselines (US, LATAM, Middle East, Europe-Russia, Asia)
- Three-tier Claude summaries — Haiku, Sonnet and Opus, each clearly labeled with the model that wrote it
- Multi-layer maps:
- Seismic — real-time USGS earthquake data
- Weather — NOAA/EONET/GDACS severe weather alerts
- Fires — NASA FIRMS satellite wildfire detection
- Travel — US State Dept travel advisories
- Source credibility — tiered badges (OFFICIAL, OSINT, REPORTER, GROUND)
- Tiered fetch architecture — critical sources first, the rest async
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Add your ANTHROPIC_API_KEY for AI features
# Start development server
npm run dev
# Open http://localhost:3000- Framework: Next.js + TypeScript
- Styling: Tailwind CSS
- Maps: react-simple-maps
- AI: Anthropic Claude API
- Data sources: Bluesky API, RSS, Telegram, Reddit, YouTube and Mastodon feeds, plus USGS, NOAA, NASA FIRMS/EONET, GDACS and State Dept overlays
src/
├── app/
│ ├── api/ # All data APIs (news, seismic, weather, fires, etc.)
│ └── page.tsx # Main dashboard
├── components/ # React components (maps, feeds, cards)
├── lib/ # Utilities (sources, parsers, detection)
└── types/ # TypeScript definitions
Create .env.local:
# Required
ANTHROPIC_API_KEY=your_key_here # AI summaries
NASA_FIRMS_API_KEY=your_key_here # Wildfire satellite data
# Optional: Bluesky auth for higher rate limits
BLUESKY_IDENTIFIER=your-handle.bsky.social
BLUESKY_APP_PASSWORD=your-app-passwordMIT