Periplum

A tiny, config-driven engine for chronological history maps — a sequence of dated points placed on Earth, the Moon, Mars, or the celestial sphere, connected as a route, with timeline playback and a date slider.

περίπλους — “a sailing-around”: an account of a coastal voyage.

Live examples

🌍

Magellan

The first circumnavigation (1519–1522), stop by stop.

World Cup

Every men's World Cup final, 1930–2026, by host city.

🌙

Lunar landings

Crewed & robotic Moon landings on a lunar basemap.

Exoplanets

The dawn of exoplanet discovery, on a celestial chart.

☀️

Olympics

Every Summer & Winter host city — ☀️ / ❄️ markers.

Tezos protocols

Tezos protocol-upgrade cities, with on-chain voting history.

Ξ

Ethereum upgrades

Execution cities + consensus stars (EIP-8133).

Earth tilesMoon / Mars imagerycelestial RA/Dectimeline playbackdate slider

Using Periplum? Add the periplum topic to your repo and it joins the gallery → all projects using Periplum.

Make your own in minutes

  1. Open the template“Use this template”.
  2. Edit index.html (title, basemaps, colours) and data.json (your points).
  3. Settings → Pages → deploy from main. Your map is live.
<script src="https://cdn.jsdelivr.net/gh/periplum/periplum-core@v0.3.4/dist/periplum.js"></script>
<script>
Periplum.render({
  title: "My voyage",
  dataUrl: "data.json",
  basemaps: [{ id:"earth", name:"🌍 Earth", type:"tiles",
    tileUrl:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
    attribution:"© OpenStreetMap", minZoom:2, initialView:[20,0], initialZoom:2 }],
  statusColors: { "outbound":"#1f77b4", "return":"#2ca02c" }
});
</script>

Each data item carries one or more placements (a basemap id + coordinates). See the data contract.