A county business directory nobody had built
Putnam County had no usable index of its own businesses. I built one from public records in a few weeks, and it is now the most complete list of local businesses that exists anywhere.
- Role
- Design, data pipeline, build
- Year
- 2026
- Type
- Own property
- Live at
- putnamlocals.com

- 190
- Businesses listed
- 267
- Pages generated
At launch
Counted from the live sitemap
The problem
If you wanted to find a plumber in Palatka, or an outfitter on the river, or simply see what businesses existed in Putnam County, there was nowhere to look. The chamber list was partial and out of date. The big national directories carried a thin, wrong subset scraped years earlier and never corrected. Search results were dominated by aggregators that had never been within a hundred miles of the place.
This is the ordinary condition of small counties. The data exists, in state registrations and public records, but nobody assembles it because assembling it is unglamorous and the market looks too small to justify a team.
The approach
The work was mostly data, not design. Pull the records, clean them, resolve the duplicates, geocode the addresses, categorize the businesses, and only then decide what a page should look like. Getting the dataset right was the project. The site is what the dataset made possible.
Every business gets its own page, every category gets an index, and the whole set is generated at build time as static HTML. There is no database call when a visitor arrives, which is why it stays fast and costs almost nothing to run.
Decisions
Geocode against the Census, not a commercial API
Commercial geocoders bill per lookup and would have made a project this size expensive to rebuild. The Census geocoder is free, authoritative for US addresses, and good enough for placing a pin on a county map. It also means the pipeline can be re-run from scratch whenever the source records update, without watching a meter.
Static generation over a live database
A directory looks like a database problem, so the reflex is to reach for one. But the data changes rarely and reads constantly, which is exactly backward from what a database is good at. Generating every page at build time means no query latency, no connection limits, no database bill, and a site that cannot go down because the database went down.
One page per business, indexable
The temptation with a directory is a single search interface, which looks modern and is invisible to search engines. Giving every business a real URL with real markup is what puts the directory in front of somebody searching for that business by name.
What shipped
Visit putnamlocals.com- Every business in the county, cleaned and geocoded
- An interactive map of the whole dataset
- Category and town indexes
- Static delivery, rebuildable end to end from source records