History · Maps·Live product·2026 – present

The War Atlas

An operational atlas of military history — wars, campaigns, battles, commanders, and factions — where every figure traces back to a primary source and nothing is machine-generated filler.

Next.jsOpen dataSource-citedMaps

From the code

Created
May 2026
first repo
Total commits
462
lifetime, all repos
Merged PRs
357
shipped changes
Velocity
~19
commits / week (avg)
Primary language
Python
+1 more
Active span
5m
since first commit
Last commit
2 days ago
Oct 2026

Commits per week

Jun 2025368 commits · trailing yearJul 2026
Battles
3,680
across 812 indexed wars
Commanders
10,531
cross-linked entities
Factions
389
sourced + cited

Most military-history content online is one of two things: a thin AI-generated summary, or a dense Wikipedia article you have to reverse-engineer. Neither lets you actually move through a conflict — open a war, follow its campaigns, see where the battles sit in time and on the ground.

The War Atlas is a cross-linked catalogue built on three rules it states on the homepage: source-cited (every figure and outcome traces to primary evidence), no filler (real entities and real citations only — no machine-generated summary pages), and cross-linked (wars connect to their battles, commanders, and factions). The data is built on Wikipedia, Wikidata, and Commons under their licenses, with sourcing made explicit.

"The catalogue is live and the interactive map is still in development — I'd rather ship a real, cited dataset than a slick map over numbers nobody can verify."

Coverage runs from the U.S. Civil War through the Russo-Ukrainian war. It's a Next.js app, server-rendered so the content is real HTML for crawlers and readers alike — the map layer (battle nodes, campaign routes, a scrubbable timeline) is being built on top of the catalogue that already exists.

Each war opens onto its own dossier. Featured entries on the homepage include World War I and World War II (with the U.S. combat years called out separately), the American Civil War, and the full-scale Russo-Ukrainian war that began on 24 February 2022. U.S. conflicts come first and in the most depth. The same structure is meant to extend back to Roman campaigns and forward to the present.

The catalogue counts moved while I built it: 812 wars, 3,680 battles, 389 factions, and about 10,500 commanders at the time of writing. Those are the numbers the live site reports, not targets. If the map layer lands, it will sit on the same cross-linked records, so a battle node on the map and a battle page in the catalogue stay one entity.

Have something you need built or fixed?

I build production Django / Next.js platforms and human-supervised AI-agent systems. Solo, senior, and fast. Tell me what you are building.

Start a project