← Back to Projects
Street Time Machine logo

Street Time Machine

Live

See your street as the surveyors drew it. Type an address, and Street Time Machine lays more than a century of USGS topographic sheets over today's aerial photography, with a rail of the real years available at that spot. Drag the divider and watch the farm become the subdivision.

Screenshots

What It Does

  • →Search any US address, or press and hold the map to drop a pin, and the rail fills with every year a USGS sheet exists for that spot, from the 1880s to the 1990s
  • →Slide the rail and the historic sheet swaps underneath you; the year rolls, the sheet name, survey and print dates, and scale read like a museum label
  • →Swipe compare: a hairline divider with a loupe handle, then on one side and today’s aerial on the other; or fade between them
  • →Today comes from USGS aerial and topo imagery and OpenStreetMap streets; the pin stays put across years so you can watch the land change around it
  • →Every view is a link: the address, year, position, zoom and mode live in the URL, so you can send someone exactly what you found
  • →Honest about loading: it tells you which sheet it is fetching and how many tiles are in, and says plainly when a spot has no historic coverage

What I Built

  • →Historic sheets come from the USGS Historical Topographic Map Collection through a public image service, with a mosaic rule per year and scale so any sheet draws at any zoom, straight from the browser
  • →A catalog step reads every sheet covering the pinned point and picks the most detailed edition for each year, with the maths for year selection, Web Mercator tiles and bounds unit-tested against saved real responses
  • →Vendored Leaflet, restyled from scratch: one ink control strip, a footnote attribution, no stock widgets
  • →A serif year numeral with tabular figures that rolls in the direction of travel, and a rail with a tick per available year, keyboard stepping and a haptic tick on phones that support it
  • →Geocoding through Nominatim, rate-limited and sent only when you press Go; no accounts, no analytics, nothing stored anywhere but your own browser
  • →A static, installable web app (React, TypeScript, Vite) with a service worker; the app shell works offline, the maps need a connection