How Terlo aggregates
Terre Haute rentals
A look at the engineering behind Terlo — what it does, how it keeps data honest, and the stack underneath.
What Terlo does
Terlo aggregates 10 local rental sources — property managers, listing portals, and public housing data — into a single searchable map for Terre Haute, Indiana. Instead of checking a handful of sites one at a time, every listing shows up in one place, filterable by price, beds, and more.
How freshness works
Every source is re-checked on a schedule, and each listing carries a last-checked timestamp. A listing that goes unseen for more than 3 days is flagged stale; after 10 days it's marked inactive and drops out of search. Nothing needs to expire manually — the freshness state always reflects what was last confirmed on the source.
Why source attribution matters
Terlo never hides where a listing came from or claims it as its own. Every listing links back to its original source, and every source is visible on the Data Sources page along with its sync history. That transparency is what makes the freshness data meaningful — you can always verify it yourself.
The tech
Terlo is a Next.js app backed by Postgres, with a set of scrapers that normalize each source's listings into one schema, geocode addresses, and reconcile what's still active. The map runs on MapLibre for fast, license-free vector rendering. It's a small, production-grade example of data ingestion, scheduled jobs, and geospatial UI working together.