Hi! I'm Antoine, a French developer. For a bit over a year I've been building RailLog on my own: an iPhone app that keeps a log of every train trip you take, with a map, stats, a "rail passport", widgets and a Live Activity during the ride. Version 4.0 came out on October 19, a full redesign. I want to share the part nobody sees, because it took more time than the app. The data To add a trip from a train number, the app needs timetables. RailLog now has the schedules of 35+ rail operators in 28 countries, mostly from public GTFS feeds. Every feed has its own surprises: My German source didn't publish train numbers, so searching an ICE by number found nothing, and ghost stations piled up on the map. I moved to the official German national feed. Amtrak publishes a new timetable every week, and my server replaced the old one each time, so past trains vanished. For a logbook, that's the worst possible bug. A rider emailed me about a missing summer trip; every operator now keeps 400 days of history, with identical daily trips folded together so the database stays small. Stations with accents (Köln, Nîmes) couldn't be found. Now "Koeln" works too. Several operators publish their trains under extended route types (101, 102, 106…) that my importer skipped, so whole companies looked empty. What I took from it Most transit tooling is built for planning, so it throws yesterday away. A logbook needs the opposite. Stack, if you're curious: a SwiftUI app, a TypeScript API with one SQLite database per operator, Firebase for accounts, all on one VPS. Next: version 4.2 is almost out, with live platform numbers for SNCF, Deutsche Bahn and Amtrak trains, a wallet for delay-compensation vouchers, and the trains passing near you during a ride. It's free on the App Store (iPhone only, optional Premium) : RailLog Happy to answer anything about GTFS, SwiftUI or running a solo app with real users.   submitted by   /u/AntoineWaes [link]   [comments]