Ukraine War Live is a fully automated, serverless OSINT aggregation platform. There is no human in the loop: no analyst writes, edits, curates, or approves any event on this site. It runs on Cloudflare's edge network and refreshes every 2 hours (00:00–22:00 UTC).
It is not real-time, predictive, or authoritative. Every event is a machine reading of a public news headline and should be treated as a lead, not a fact. Any casualty figures are numbers announced by one side in the war — Ukraine or Russia — passed through without independent checking. They are not confirmed death or injury tolls.
event type + 0.1° grid cell + 1-hour bucket. A coarse position (gazetteer centroid or none) with a named place uses event type + place slug + 3-hour bucket, so two outlets writing up the same strike on the same town collapse to one entry; with no place name it falls back to a normalised-headline hash. Buckets are 4 hours for territorial change and diplomacy. If either signature is already seen the event is dropped — and if that duplicate comes from a different outlet than the first report, it counts as independent corroboration, so at 2+ outlets the original event is promoted to High confidence. Signatures are kept for 30 days, with a 40,000-key cap./archive/<date>./feed.json. No alerting, no social channels.Every event carries one tier, shown as the marker colour on the map.
| Tier | Meaning | Colour |
|---|---|---|
| High confidence | Same event reported by 2+ independent outlets — in one run, or corroborated by a later run | green |
| Official — Ukraine | Attributed to Ukraine's General Staff, Air Force, or regional officials | blue |
| Official — Russia | Attributed to the Russian Ministry of Defence or government | violet |
| News wire | A single mainstream outlet, not attributed to either side | amber |
| OSINT | Geolocated or analyst-sourced (e.g. Militarnyi, DeepState) | grey |
| State media | Sourced to TASS / RIA / Sputnik and not independently confirmed | red |
A separate worker, on its own schedule, with its own prompt, extracts only ground_engagement and territorial_change events — infantry, armour and artillery combat at named places, and settlements captured, lost, or claimed. It explicitly ignores airstrikes, missiles, drones, air defence, naval action, and diplomacy, which the main pipeline handles.
The red occupied-territory shading is a third worker that pulls the current control map from DeepStateMap.live every 6 hours, keeps only the occupied / Crimea / ORDLO polygons, and caches the trimmed GeoJSON. The same worker also keeps a weekly snapshot and backfills ~7/14/30/60/90-day-old ones from DeepState's public history, which power the map's "compare front line to a past date" control. It can be several hours stale and is © DeepStateMap.live, CC BY-NC-SA 4.0. It is independent of the event pipeline.
Once a day a fourth worker sends the previous day's archived events to the same language model and stores a short digest — one headline plus a few grouped bullets. Reports are kept indefinitely on the Daily page. Like everything else here it summarises only the machine-extracted events; it adds no outside knowledge.
/feed.json, /api/events, /api/search, /archive/index.json, /archive/<date>, /frontline.json, /frontline/history, /sitrep, /rss.xml, /status, /stats, /llms.txt.The platform is politically agnostic by construction. The extractor records attacker, target, and location regardless of the source's alignment, and applies the same confidence rules to every side. There is no affiliation with any government, military, or advocacy organisation. There are no ads and no third-party trackers; aggregate page-view counts are tallied first-party from a daily-rotating hash — no cookies, no third-party scripts, and the raw IP is never stored — with the totals published on the About page. Only public officials and official spokespeople are named; no private individuals.
To flag an error, open an issue on the project repository. The code and data are released under CC BY-NC-SA 4.0 — non-commercial reuse with attribution, share alike — consistent with the DeepStateMap front-line data licence.