Context

MY-train is a side project built with Claude. The goal was one screen for the Skerries line that answers “which train, where is it, and will it get me to my station?” at a glance, for journeys in either direction.

Challenge

Irish Rail’s realtime API is free and needs no key, but it is rough. It returns XML, has no CORS, only looks 90 minutes ahead, and does not mark cancelled trains. There is no public alerts API at all. Some trains end at Connolly and never reach Pearse, and DART+ test runs appear north of Malahide without being in any timetable. A good board had to work around all of that without guessing wrong.

Approach

The site is Astro on Vercel, with the same Tailwind and daisyUI theme as this one. Server routes call Irish Rail from Dublin, cache the result at the edge for 15 seconds, and build the boards. The map uses MapLibre with track and stations taken from the NTA timetable data, and it places each train by interpolating between its stop times, so trains glide along the line instead of jumping.

The timetable fills the gaps in the live data. A timetabled train due in the next hour that has vanished from every live board is treated as cancelled. A train that is not in the timetable is shown as a special. The same data gives tonight’s last train, which the board highlights before it goes.

MY-Train lets you pin any upcoming train. It gets a live countdown, a reminder before it leaves, and alerts if it runs late or is cancelled. With notifications allowed, a Vercel Workflow watches the train every minute and sends push notifications, so the alerts arrive even with the app closed.

Outcome

My-Train is live at train.dermotdooley.com for personal usage but going public Beta at mytrain.fyi](https://mytrain.fyi). It installs to a phone’s home screen and works offline with the last departures it saw.