I'm working on a fully offline, client-side train journey planner for UK rail - https://railraptor.com

When booking flights, I use sites like Kiwi and Skyscanner that let you do flexible searches - multiple destinations, custom connections, creative routes, etc. But rail search feels oddly constrained. All the UK train operators offer basically the same experience, and surface the exact same routes. I always suspected there were better or just different options that weren’t being shown. Where is the "Skyscanner for trains"?

After digging through the national rail data feeds, I decided to have a go at building my own route planner that runs completely offline in the browser. This gave me the freedom to implement more complex filters, search to/from multiple stations, and do it without a persistent network connection.

Now I'm finding routes that aren't offered by the standard train operators, connecting at different stations, and finding it's often easier to travel to different stations (some I'd never heard of) that get me closer and faster to where I actually want to go!

It's still a little rough and I'd like to add more features such as fares, VSTP data, and direct-links to book tickets, but wanted to share early and get some initial feedback before investing more time into it. So, thanks in advance - let me know what you think.

I like your idea. If you dig around Rory Sutherlands YouTube appearances he talks about how train routers fall down by always looking for the fastest route, where he would prefer the nicest, often cheaper and slightly slower. He has a fair amount to say on the subject so it is a bit of a goldmine.

I sent you some feedback on a routing failure because I didn't want to post exactly where I live here.

I think you need pricing. Works offline is cool, but why not pull in the pricing if people are online? Train fares are so variable depending on time of day, especially if they go via London. I could have a trip that could be £300 cheaper by taking a 30 minute longer trip that avoids London. I need pricing to get my best journey.

My thoughts exactly! Sometimes I don't mind travelling a little longer, or ending up at a nearby station, if it's a nicer journey.

Thank you for the feedback, pricing is definitely next on my to do list if I can make it work.

This sounds very nice! A slightly adjacent question: have you discovered any providers that can recommend train journeys based on price? Sort of like the explore feature you find on sites like Google Flights, Ryanair and Flixbus. Sometimes when the wanderlust hits I've tried searching around for cheap train tickets, but it isn't simple using sites likes DB/OEBB/SBB/SNCF/etc

https://raileasy.co.uk / https://trainsplit.com is the most flexible existing service I've found, but even that doesn't give you an "anywhere" option.

I'm looking at how to add price data to railraptor, but it might mean sacrificing the fully-offline capability... once I have prices it should absolutely be possible to build a filter along the lines of "find me the cheapest popular destinations that are at least 50 miles away".

Great that it stores the entire timetable in only 6MB(?) of storage.

Some feedback: I don't think it can route through London as it isn't aware of tube connections between stations? And the classic stress test of Penzance to Thurso is too long for the routing algorithm, but I imagine that's beyond scope?

Pricing would make this a super useful tool!

Thanks for the feedback. I was missing the "Fixed Links" data, which covers any transfers that aren't part of the normal rail network (e.g. walking/bus/tube). I've just added that, so the tube routes via London should work for you now.

The routeing data is pretty complex - there are layers on layers of data files and rules to cover all the edge cases and weird stations/routes. It's been really fun to dig into it.

I'll look into adding more possible connections to see if it can find the Penzance route - I'd be curious to know if anyone has ever actually completed the 27 hour journey!

This sounds awesome. Have you checked how it fares against trainline? A quick demo would be very nice.

I love this! Dijkstra's Algorithm is always a fun time

I do love Disjkstra :) this actually uses a modified version of the "Raptor" algorithm for public transport routing (hence the name!): https://www.microsoft.com/en-us/research/wp-content/uploads/...