§About the catalogue
A small useful thing, built carefully.
Rootfast answers a simple question — I live here, what should I plant? — and answers it with data, not opinion.
Why this exists
The data already exists. USDA PLANTS knows which native species occur in every county. The Plant Hardiness Zone Map knows what survives the winter. The GBIF Backbone resolves the taxonomic mess across competing scientific authorities. Each is a beautiful piece of public infrastructure. None of them speak to each other in a useful way.
Rootfast joins them, on a canonical taxonomic key, and serves the result as a plain HTTP API. The hard work isn't novel — it's stewardship. We've kept every source citation, every confidence rating, every “USDA hasn't characterised this taxon yet.” The data is honest about what it knows and what it doesn't.
What it covers, today
The United States, nationwide. 27,678 plant taxa across 55 of 56 states and territories, 3,230 counties, 2.5 million county-presence records with native/introduced status. USDA cultivation specs where USDA has formally characterised the species. iNaturalist photos for 94% of taxa (CC-licensed, hot-linked from iNat, never rehosted). Every record carries a GBIF taxon key so additional sources join cleanly.
USDA Plant Hardiness Zone Map (2023). 40,502 US ZIP codes and 3,199 counties mapped to their canonical hardiness zone (1a–13b), joinable against each plant's minimum-temperature tolerance.
Known gaps. Connecticut is mid-migration on the USDA side following its 2022 abolition of counties — USDA has the new planning regions in their gazetteer but no plant records linked yet. A handful of water-heavy coastal counties also fall outside their hardiness-zone polygon (centroid lands in water). We're working in the open; the rough edges are real.
How it's built
A Python ETL fetches from USDA's undocumented public ArcGIS endpoints and
REST API, one state at a time. A matcher calls GBIF's
/species/match endpoint to assign each plant a canonical
taxonomic key. iNaturalist photos are joined in by taxon id, with each
photo's individual CC license preserved on the record. The merged dataset
is written to Cloudflare D1 via a chunked-import script that works around
a brittle upload path in modern wrangler; a small TypeScript Worker serves
the API behind an OpenAPI 3.0 spec at
/docs. The site you're
reading is Astro on Cloudflare Pages.
Code is MIT-licensed, data is CC0. The whole thing runs comfortably inside Cloudflare's free tier. Source — including ETL pipelines, schema migrations, and the discovery notes that explain how to find these undocumented USDA endpoints in the first place — is on GitHub: github.com/cjscrofani/rootfast ↗.