Real-time OSINT dashboard for geopolitical situational awareness. Breaking news before it's news.
- Real-time feed from 285 OSINT sources (Bluesky accounts + RSS feeds)
- AI situation briefings - Claude-powered summaries with tension scoring (1-10)
- Multi-layer maps:
- Hotspots - Conflict zones with activity indicators
- Seismic - Real-time USGS earthquake data
- Weather - NOAA/EONET/GDACS severe weather alerts
- Fires - NASA FIRMS satellite wildfire detection
- Outages - Internet/power disruption tracking
- Travel - US State Dept travel advisories
- Smart severity detection - Keywords analyzed to flag CRITICAL, HIGH, MODERATE events
- Activity anomalies - Highlights when sources post above baseline
- Region filtering - Middle East, Ukraine, Taiwan, Venezuela, US
- Source credibility - Tiered badges (OFFICIAL, OSINT, REPORTER, GROUND)
- Dark mode - X/Twitter-inspired dark theme
# 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 15 + TypeScript
- Styling: Tailwind CSS (dark mode)
- Maps: react-simple-maps
- AI: Anthropic Claude API
- Data Sources:
- Bluesky API (280 OSINT accounts)
- RSS feeds (BBC, Al Jazeera, etc.)
- USGS earthquake API
- NOAA weather API
- NASA FIRMS/EONET
- GDACS disaster alerts
- US State Dept travel advisories
- Icons: Heroicons
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 briefings
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-password# Deploy to Vercel
vercel
# Or build for production
npm run build
npm startMIT