Try it right here
This loads the live project from its own domain, exactly as a visitor would see it.
What it does
Between September 1901 and March 1909, Roosevelt protected roughly 230 million acres — about a tenth of the country. A timeline slider starts with what was already protected when he took office, then adds each year of his presidency: 150 national forests, five national parks, eighteen monuments, 51 federal bird reservations, four game preserves and 24 reclamation projects.
The interesting problem here is honesty about shape. The 1909 outlines largely do not survive, so every boundary drawn is the place as it exists today, taken from current Forest Service, Park Service and Fish and Wildlife data — and the map says so, plainly, to the visitor. Forests are shaded by the reserve at their core: green where Roosevelt first protected them, tan where protection predated him, with a dashed green edge marking the year he enlarged one. Reserves that no longer exist appear as markers rather than being quietly dropped.
Every figure is traceable. A research/ directory holds the verified source tables behind the data — Forest Service boundary histories, the 1912 Biological Survey circular for the bird reservations, presidential proclamations for the monuments — with notes on every correction and every open question.
What it can do
- Year-by-year slider across the presidency, with a play control
- Boundaries for 109 modern forests descending from 1891–1909 reserves, plus markers for three that no longer exist
- Filter by kind: forests, parks, monuments, bird reserves, game preserves, reclamation
- A toggle for what was already protected before he took office
- Shareable deep links to a year, a filter or a single place
- Source tables in
research/behind every count, with corrections recorded
Make it your own
Start by forking the repository into your own organization. Everything below assumes you are working in your fork, not this one.
- Fork the repo. The published site is
index.html,styles.cssandapp.js— no build step. - Replace
data/sites.json, one record per place: name, kind, era, date, acreage, note, what it is today, and sources.data/lands.geojsonholds the boundaries, keyed bysid. - Rebuild geometry with the scripts in
tools/, pulling boundaries from whichever authoritative service covers your subject. - When simplifying with mapshaper, do not add
-clean— it removes overlapping features and will silently erase any place that sits inside another. - Keep the caveat text. Showing today's boundary for a historic designation is defensible only if you say so on the page.
- Enable Pages from
mainat the root, setCNAMEand the DNS record, then turn on Enforce HTTPS.
Stuck on a step? Open an issue on the repository. Questions from people adapting these for their own institution are the most useful feedback we get.