{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibetat4rxnmjaxtmf3xxoa7j3sk6uo3czgnmbgzkle2divpzmimfa",
    "uri": "at://did:plc:glftha7ciqcqj36aguryfmoz/app.bsky.feed.post/3mkqejjqk4z22"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreia33d47e7v3dialflujiwrn7ldq7dxfpo3rdmjwsrbxcfs4arlskm"
    },
    "mimeType": "image/png",
    "size": 53570
  },
  "path": "/823771/real-time-train-positions-for-17-cities-built-from-public-gtfs-rt-feeds-oc/",
  "publishedAt": "2026-04-30T17:23:58.000Z",
  "site": "https://www.usluck.com",
  "tags": [
    "Data Is Beautiful"
  ],
  "textContent": "I built this because MetroBoard was $200, had a months-long waitlist, and only does one city. This one does 17, runs in the browser, and costs nothing beyond hardware I already had. Every dot is a live train pulled from GTFS-RT feeds that transit agencies publish publicly. I process the static feed once into route [...]",
  "title": "Real-time train positions for 17 cities, built from public GTFS-RT feeds [OC]"
}