Live Experiment · Public News Aggregation

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

How it works

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.

1

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.

2

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.

3

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.

4

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.

The two rules

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.

Engineering note

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.

Read this before you cite it

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.

Built with

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.

Cloudflare Workers Hono JSX at the edge D1 Leaflet TypeScript Cron every 5 minutes Public RSS only Server-rendered
See it live

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.