// the take
A Next.js dashboard that pulls together roughly 50 free, keyless public feeds (news RSS, Telegram scraping, ADS-B flight tracking, Pikud HaOref/Ukrainian air-raid alerts, markets, NASA FIRMS) into one real-time situational-awareness board, switchable between the Iran/Israel and Russia/Ukraine theaters. Aimed at OSINT hobbyists, analysts, or anyone who wants a self-hosted conflict monitor without wiring up a dozen integrations themselves.
The theater abstraction is genuinely well designed: each conflict is a config object (map center, RSS list, Telegram channels, bounding boxes) consumed through a `useConflict` context and `useConflictFeed` hook, so the whole UI re-points without branching logic scattered everywhere. Zero setup friction — no API keys, no env vars, `npm install && npm run dev` and you have a working dashboard. Polling intervals are sensibly tiered (15s for sirens, 10min for markets) instead of hammering every source at the same rate. Docker image is multi-stage, ~215MB, and runs as non-root, so self-hosting is low-effort.
Most of the interesting feeds ride on unofficial or undocumented endpoints — Yahoo Finance's chart API, Google Translate's unofficial endpoint, Telegram's embed scraper — and the README itself admits these may violate the providers' ToS and can be blocked or changed without notice; this is the load-bearing part of the app and the most fragile. There's no visible server-side cache or rate-limit handling: every client poll appears to hit upstream directly through the Next.js API routes, so a handful of concurrent self-hosted users could get the shared free sources (adsb.lol, Telegram, Google News) rate-limited for everyone. The Telegram channel lists are a hand-picked, hardcoded set with no automated dead-channel detection — the README flags that the Russia/Ukraine list was last activity-checked in July 2026, meaning coverage silently rots unless someone manually re-audits it. Translation and alert data feeding something billed as a threat/siren monitor relies on an unofficial Google Translate call and community alert mirrors rather than anything with an accuracy SLA, which matters more here than in a typical dashboard.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →