WarMap Live
A world map of reported military incidents, assembled from public news coverage.
72 free public news feeds, read every five minutes. A model reads the headlines, classifies what happened and places it on the map — and every marker links back to the article it came from.
It is an aggregator of public reporting, not verified intelligence, and it is built to say so. No account, no paywall, no tracking wall.
At a Glance
72
Public news feeds
5 min
Refresh interval
11
Languages
$0
Free, no account
From an RSS item to a marker on the map.
Four stages run every five minutes. Most articles never reach the model at all, which is deliberate.
Read the feeds
72 free public news RSS feeds are fetched. No paid news API is involved. A feed whose newest item is older than ten days, or that parses to nothing, is treated as failed rather than healthy — two dead feeds once reported success for months while serving articles from 2018.
Score and skip
Each article is scored for whether it describes a military incident, and roughly 95% are dropped before any model runs. What is left is diffed against what has already been seen, so a quiet interval calls the model zero times instead of burning a request on nothing.
Classify and locate
The model may only classify the incident and estimate where it happened. It is never allowed to supply a source URL, an outlet name or a timestamp — those are copied verbatim from the feed entry. Anything that fails validation is dropped, never repaired.
Plot it, with the source attached
The incident is written to the database and appears on the map within the refresh cycle, carrying a link to the original article and a permanent page of its own that can be cited.
What the project refuses to do.
It must not invent news.
An early draft shipped with eight example incidents, complete with casualty figures credited to Reuters, AP and the BBC. On a site presenting itself as live conflict reporting, that is fabricated news. They were removed and the project now ships with no seed data at all — the map stays empty until something real lands on it.
An arrow from one country to another is a factual claim, so arcs are drawn only where the source article actually named the attacker or the launch area. Everything else gets a plain marker.
It must not pad a quiet hour.
The map used to top up a thin time window with older incidents from outside it, so that a near-empty world did not look broken. At roughly one to seven incidents an hour, that padding was supplying most of what a visitor saw — someone looking at "the last hour" was mostly looking at yesterday.
The window is now absolute. A quiet hour renders as a quiet hour, and the wider windows are one tap away.
Rendered on the server, because crawlers do not run JavaScript.
WarMap Live started as a React single-page app. It shipped an empty root element and built the incident list in the browser, so everything a crawler could read sat inside a noscript fallback — which Google discards when it renders. Most AI crawlers do not execute JavaScript at all, so to them the page was an opaque URL.
It was rewritten to render every page on the edge, with the map as the single piece that genuinely needs a browser. Measured on the same homepage:
Words a crawler sees
10 404
JavaScript shipped
104 KB 53 KB
Works with JS off
Everything but the map
Filters are ordinary links rather than buttons, so every filtered view is a real URL that works without scripting; the map upgrades them to in-place updates when JavaScript is available.
What this map is not.
These limits are published on the site itself, in its documentation and in the file it offers to AI assistants, because a map of conflict that overstates its own reliability is worse than no map.
Not verified intelligence. It aggregates public news coverage, and there is no human review in the pipeline.
Coordinates are estimates. A model places each incident from a headline. A marker can be in the wrong town, region or occasionally country.
An origin is an attribution. It is what the article said, not an observed launch site.
Early figures get revised. Casualty numbers are whatever the article said when it was published.
Some sources are state-controlled. They report claims as fact.
An empty area is not silence. It means no monitored feed published a matching report.
Not suitable for safety, travel, operational, journalistic, insurance or legal decisions without checking the original source.
One worker, one database, one map.
The whole thing runs on Cloudflare, including the scheduled job that reads the feeds. There is no server to keep alive and no separate backend.
The map is the product.
Open it and you get the current window straight away — no account, no cookie wall, and every incident one click from its source.
WarMap Live aggregates public news reporting. It is not verified intelligence and carries no warranty of accuracy. Always check the linked source before relying on anything you see here.