WhoRuled
2026
Role
Creator and maintainer: design, frontend, data pipeline
Overview
WhoRuled is a static, source-first history site.
Dragging the year slider redraws borders on a Canvas 2D map, and the look of the page changes with the era.
Clicking a state shows its rulers, government and events, each linked to a source.
Static pages such as 'Who ruled France in 1960?' make the data searchable.
There is no backend, no accounts and no cookies unless ads are switched on.
Responsibilities
- Built the site with Astro and a single React island that renders the map with Canvas 2D and d3-geo, in strict TypeScript.
- Designed a data pipeline that turns historical border GeoJSON into one simplified TopoJSON file per snapshot year, about 7 MB in total.
- Modelled facts as one JSON file per state, keyed by Wikidata ID, with a zod schema that rejects any ruler, office or event without a source URL and quote.
- Generated static pages for each year and state so the content is indexable without a server.
- Covered the app with Vitest unit tests, a Playwright smoke test, ESLint and CI, and deployed it to Cloudflare Workers static assets.
- Kept geometry, facts and code in separate folders so each keeps its own licence.