{
"$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]"
}