Loading positions…
How it works
Each dot is a train that is moving right now. The positions come from Irish Rail’s realtime feed, pulled by a small FastAPI service running in Docker on a server in my house and served back out through a Cloudflare tunnel. The page asks for positions when you open it, and again every minute after that.
The island is drawn from Natural Earth boundary data, projected with an equirectangular fit scaled by the cosine of the mean latitude. Over a country this size the distortion is not noticeable, and it keeps the map down to a single SVG path with points placed on top of it, with no tile server, no API key and no mapping library.