Skip to content
Field notes

How our data stays fresh: ridb, BLM, and a dated freshness badge on every site

published 2026-05-22 · by andrew ladouceur

What goes wrong with free camping data

Stale data is the most common complaint in free camping apps. Not missing features. Not bad design. Stale data.

Here are three things real users have said:

  • "Some campsite information unchanged since 2013." [internal research, pain-taxonomy row 15]
  • "App took US to strange campgrounds and some that weren't even open anymore." [internal research, pain-taxonomy row 16]
  • "Permanently-closed sites remain on map with no filter." [internal research, pain-taxonomy row 35]

The pattern is the same in each case. A site gets added once. Nobody checks it again. The app keeps showing it. You drive an hour to find a locked gate, a dry lakebed, or a fee booth where the free pull used to be.

That is the problem we are trying to solve. Not perfectly. But honestly.

---

The four sources we pull from

Boondock does not build its database from scratch. We pull from upstream sources that are maintained by the agencies themselves, then layer our own crawl on top.

Source 1: the recreation information database (ridb)

The Recreation Information Database is a federal API that covers campgrounds managed by NPS, USFS, BLM, Bureau of Reclamation, Army Corps of Engineers, Fish and Wildlife Service, NOAA, and TVA. We pull roughly 10,365 sites from this feed [1].

When an agency updates a site in RIDB, that change flows into our database on the next nightly delta pull. Facility status, fee amounts, reservation requirements, and seasonal open dates all come through this channel.

Source 2: BLM field-office feeds

RIDB does not capture everything about BLM dispersed camping. Fee changes, new closure orders, and updated dispersed-use rules often live on individual field-office pages rather than in the central API. We crawl those pages weekly.

Source 3: USFS ranger-district pages

Fire restrictions and seasonal closures for USFS dispersed camping move fast in fire season. Ranger-district pages are the authoritative source for those orders. We crawl them weekly alongside the BLM feeds [3].

Source 4: our own crawl

Between scheduled API refreshes, published rules can change. Our crawl picks up those changes by re-checking known URLs for any site that has been modified since the last pull. It is not a replacement for the upstream feeds. It is a gap-filler.

---

The cadence

Source refresh what changes
RIDB API nightly delta pull facility status, fees, reservation type, seasonal dates
BLM field-office pages weekly crawl dispersed rules, fee changes, new closure orders
USFS ranger-district pages weekly crawl fire restrictions, seasonal closures
Our own crawl ongoing between cycles rule changes published between scheduled refreshes
Full reconciliation quarterly any site not verified in the prior quarter is reviewed or marked inactive

The quarterly reconciliation is the backstop. Any site that has not received a real upstream signal in 90 days gets flagged and reviewed. We either find a current source and update it, or we mark the site inactive.

---

The freshness badge on every page

Every site page in Boondock shows a freshness badge. It reads: Data verified Month YYYY.

That date comes from `sites.last_seen` in our database. It reflects the last time an upstream source returned a signal for that site. Not the last time we looked at it. Not the last time we regenerated the page. The last real signal.

We do not silently update that timestamp when nothing changed. If a site has not been touched upstream, the badge does not move.

If the badge is more than 90 days old, the page says so. You will see a flag that tells you the data is overdue for verification. That is not a bug. That is the system working as intended.

---

What happens when a source goes silent

Sources go quiet sometimes. An agency rebuilds its website. A field-office page goes offline during a redesign. The RIDB feed returns an error for a subset of sites.

When a source has not updated a site in over 90 days, we do not pretend otherwise. The badge flags it. The page notes the gap. You can see that the last verified signal is old before you decide whether to drive there.

We do not delete the site silently. We do not regenerate the timestamp to make it look current. We surface the gap and let you decide.

At the quarterly reconciliation, any flagged site gets a manual review. If we cannot find a current upstream source, the site is marked inactive and removed from default search results. It stays in the database but does not show up as a live option.

---

What we will not do

A few things we have decided not to do, because they would make the data look better without making it more accurate.

We will not fabricate amenities. If `sites.amenities` does not include a dump station, the page does not say there is one. If we do not have a confirmed water source, we do not list one. An empty field is more useful than a wrong field.

We will not regenerate timestamps when nothing changed. The badge reflects real upstream activity. A timestamp that moves without a real signal would be a lie.

We will not silently delete pages. If a site goes stale, you will see the flag. If it gets marked inactive, it leaves search results but stays in the database. We do not quietly erase the history.

We will not promise real-time data. Nothing in public-lands camping is real-time. Agency systems update on their own schedules. We pull from those systems as often as they allow. The nightly RIDB pull is as close to current as federal data gets.

---

The honest empty state: sites we do not list

There are things we do not yet show. Motor Vehicle Use Maps, for example, are the authoritative source for which roads are open to motorized travel on national forests. We do not yet surface MVUM data inside site pages. That is a gap, and we are naming it.

We also do not have every dispersed pull in every state. Free camping by state shows what we have. If a spot is not in our database, it is not there yet, not hidden behind a paywall.

On that note: data hygiene and monetization interact. When an app moves core features behind a subscription, the incentive to maintain free-tier data quality drops. That is part of what happened with the iOverlander paywall. We are not making that argument to score points. We are making it because it explains a real pattern in how free camping data goes stale.

---

Bottom line

The freshness badge on every Boondock site page shows the last real upstream signal, not the last time we touched the page. Four sources feed it. The nightly RIDB pull covers roughly 10,365 federal sites. BLM and USFS pages refresh weekly. Any site without a signal in 90 days gets flagged. Any site without a signal after a full quarter gets reviewed or marked inactive. The timestamp is the truth.

install boondock and try the free tier.

$35 a year for offline maps and cell coverage.

App StorePlay Store