Living Stories
Lab · TimeMapper
Open Knowledge Foundation

TimeMapper

A side-by-side timeline and world map for the full family chronology — from Palmer's birth in Cando, North Dakota in 1912 to Dean Lloyd's birth in Minnesota in 2025. Scroll the timeline, watch the map animate.

42 Events 6 Generations 1912 – 2025 Live Embed

Live Family Timeline

41 events · 113 years · 6 generations · 14 countries and states. Click any event to pan the map — or click a map marker to jump to that event.

Self-hosted replacement for timemapper.okfnlabs.org (retired 2025). Built with Leaflet.js + CartoDB tiles. Data from family-timemapper.csv.

Data Format

TimeMapper reads a CSV with the following columns. Required fields are highlighted.

Column Required? Description Example
TitleRequiredEvent headline shown on the timeline cardPalmer & Signe Wed
StartRequiredStart year, or full date (YYYY-MM-DD)1940 or 1969-12-28
EndOptionalEnd year for ranged events (e.g. a multi-year stay)1996
LocationRequiredPlace name — TimeMapper geocodes this automaticallyCambridge, Ohio
DescriptionOptionalBody text on the timeline cardAmy attends Boyd Technical School…
LinkOptionalURL shown as a "Read more" button on the cardhttps://stadum.family/people/amy-lloyd/
MediaOptionalImage or video URL to display on the cardhttps://stadum.family/assets/media/images/…
Geocoding: TimeMapper uses the Location field to geocode each event automatically using Nominatim. Specific place names like "Cambridge, Ohio" and "English Harbour, Antigua" geocode correctly. Country-only names like "France" or "Norway" resolve to the country centroid.

Embed on Any Page

Copy the iframe below. Replace the CSV URL with any publicly hosted CSV that matches the data format above.

<!-- TimeMapper embed — Stadum Family Timeline -->
<iframe
  src="https://timemapper.okfnlabs.org/embed?url=https://stadum.family/lab/data/family-timemapper.csv"
  width="100%"
  height="650"
  frameborder="0"
  allowfullscreen
  loading="lazy"
  title="Stadum Family Timeline"
></iframe>

To update the data

  1. Edit /lab/data/family-timemapper.csv in this project.
  2. Deploy to Netlify — the public URL stays the same.
  3. TimeMapper fetches fresh CSV on each page load — no cache busting needed.

Using Google Sheets instead

TimeMapper also reads Google Sheets directly. Publish your sheet as CSV (File → Share → Publish to web → CSV) and paste the resulting URL into the embed src parameter.