Skip to content

Europe History Map

An interactive timeline of Europe’s borders, from 1000 BC to today.

Try it (opens in a new tab)
Platform
Web
Stack
React, D3
Status
Live

01Problem

I wanted to understand where my girlfriend’s family comes from.

Her family is from Kosovo, and I wanted to learn the history, and the conflicts too. But with YouTube videos it was super hard to understand how the territories changed over time, and when something belonged to which country.

02Idea

So I built myself an interactive timeline of Europe.

Drag through the centuries and watch the borders move. Every state and empire shows up where it was, in the year you’re looking at.

03Features

Click any country and it tells you its story.

Every state and empire has its own page: when it existed, its capital, its culture, the people who shaped it. “Watch its history” follows one realm through the centuries, and you can search for any country or start one of five guided stories.

Europe History Map today, zoomed into the Balkans: Kosovo is highlighted and its panel is open, a sovereign state with Pristina as its capital, a parliamentary republic, with Albanian and Serbian as languages

04How it works

830 states and empires, and the borders morph between the years.

The borders come from Seshat’s Cliopatria databank, an open dataset of the world’s states through history. I cut it to Europe and simplified the shapes, so the whole map runs in the browser with no server. Between two years the borders morph instead of jumping, which is what makes the changes easy to follow.

Next projectTrimAn experiment in bringing the analog world to a workout tracker.

Changelog

  • Search starts with what's on the map right now

    Search used to suggest the biggest realms of all time, so you'd get the USSR while looking at 117 AD. Now it starts with what's actually on the map in that year, plus the realms you looked at recently. You can step through every realm on the map with the arrows in the card or the [ and ] keys. I also cleaned up the screen a lot - the year shows once, big, and today's borders is one toggle in the header.

  • Scrubbing the timeline no longer crashes Safari

    On an iPhone, dragging through the years for a while ended in a crash screen, and on the Mac the map sometimes just went blank. Safari only lets a page rewrite its address so many times in a few seconds, and the map did it on every year. Now the link updates once you stop scrubbing, so you can drag through history as long as you like.

  • Calmer in Safari, and the trackpad pinch zooms

    In Safari on the Mac the map flickered while zooming and a weird gold box showed up when you picked a territory - both gone now. Pinching on a laptop trackpad finally zooms the map. Labels also stop jumping around mid-zoom. The app is called Europe History Map now, and I dropped the sound and the share button.

  • Type a year and the map goes there

    Click the big year or press G, type 1453 or 500 BC, and the map jumps there. Back and Forward in the browser take you through the places you’ve been. Each realm’s card has a chart of how big it was over time, and clicking the chart takes you to that year. It also lists what came before and after on the same land.

  • Map labels stop piling on top of each other

    The names on the map used to pile on top of each other, and now each one finds space inside its own realm. The timeline gives the modern centuries more room, so you can actually scrub through them. The page shows up right away while the map loads. Search also forgives accents and word endings, and pressing ? shows the shortcuts.

  • Guided stories, and links that open on the same year

    Search now has five short stories you can play - Rome, the successor kingdoms, Westphalia, the world wars and after the Wall. The camera follows along and a big title card shows each era as you pass it. From any territory, Watch its history plays it from its first year to its last. Share copies a link that opens on the same year with the same territory selected.

  • Pinch to zoom on phones, and less clutter over the map

    On a phone you can now pinch to zoom and drag the timeline handle to scrub through history. Zoom, the map key and the today’s-borders toggle moved into one small card, and the key now matches what the map actually draws. On phones most of that is hidden so you mostly see the map. The year and the era name sit in the top-left corner.

  • Empires stay on the map while the borders move

    Big empires like Rome shrank to a speck in the middle of a transition and then came back. Now the whole territory stays on the map while the borders morph. A state that just changes its name, like England to Norman England, carries straight on. Playing through the years and panning around are a lot smoother too.

  • Kosovo shows up on today’s map

    Kosovo was in the historical data through 2024, but it disappeared when you got to Europe today. The map data has no country code for it, so it got skipped. That one bugged me, since Kosovo is kind of why I built the map. It’s there now with Pristina as its capital, and the 2024 shape moves into today’s borders.

  • Territory cards tell you how people lived

    Clicking an empire used to give you one short sentence. Now the card has its culture, the people who mattered and what it left behind, plus its capital, government and language. There are write-ups like that for more than 70 of the big empires and kingdoms.

  • Europe History Map is on the web

    I put Europe History Map online. You drag the timeline and Europe’s borders change with the year, from 1000 BC to today. Click a territory and it tells you what it was. It all runs in the browser.