Hey everyone!
A lot has happened since the v5.0 announcement. Step by step, Reitti grows into something richer: it now understands journeys with multiple transportation modes, tells you how much of your world you have actually explored, geotags the photos your camera didn´t, and reads the FIT recordings from your sports watch. Yesterday’s v5.3.0 brought all of these threads together, and I want to take a moment to share this progress with the community.
For anyone new here: Reitti (Finnish for “route”) is a self-hosted, privacy-first alternative to Google Timeline. It turns raw GPS points from your devices into visits, trips and a timeline of your life, stored exclusively on your own infrastructure.
Here are the features I’m most excited about:
Multi-Segment Transportation Modes
Real journeys are rarely single-mode: you walk to the car, drive, then walk again. Reitti now understands this and models it as one trip with multiple transport segments instead of mislabeling everything as “Driving”.
- Color-coded track lines with transition badges exactly where you switched modes (new “Display Transportation Modes” map setting)
- Fully customizable icons & colors per transport mode under Settings > Transportation Modes
- One click to reclassify your entire existing history, with live progress on the redesigned job status page

Spatial Coverage
Hexagons are bestagons.
The “fog of war” for your life: Reitti now calculates how much of your cities, regions, and countries you have actually explored, down to the percentage. With the historical sliders you can watch your map fill in year by year.
Heads up: this optional feature requires SPATIAL_COVERAGE=true, roughly 10 GB of
additional disk space and some initial indexing time. Everything about setup and configuration is covered in the Spatial Coverage documentation.

Photo Geotagging via Immich
This one is for everyone running Immich next to Reitti: connect the two services once, and Reitti can locate photos that have no GPS data, then write the coordinates permanently back into your Immich library.
How it works: Reitti takes a photo’s capture timestamp, matches it against your recorded location history, and shows you the suggested position. Happy with what you see? One button press writes it into the photo’s metadata in Immich. Nothing happens without your confirmation.
This solves a real problem: most dedicated cameras, whether DSLR, mirrorless or action cam, simply have no GPS receiver. Until now, those photos sat forever on Immich’s “no location” pile or needed tedious manual tagging. With Reitti, the tracker you already carry does the job your camera never could. And since everything happens between your own two self-hosted services, not a single byte leaves your infrastructure.
FIT File Support
Reitti now natively imports .fit files, the standard format for cycling computers and sports watches from Garmin, Wahoo & co. No more converting your rides and runs to GPX first: drop them in and they show up in your timeline like any other recording.
More Highlights
- Live Location Only mode users (v5.2): share your live position without building a permanent history log. Privacy-first family tracking.
- Bulk GPX uploads for GPSLogger (v5.2): fewer connections, noticeably less battery drain.
- Improved visit/trip detection (v5.1): better algorithms mean less manual cleanup.
Community & Support
- GitHub: Report issues & view source
- Docs: https://www.dedicatedcode.com/projects/reitti/latest/
- RSS: Stay updated via the releases feed.
- IRC:
#reittionlibera.chat - Support: Buy me a coffee on Ko-fi
I’m always curious how you all use Reitti, so feel free to share your setup and stories in the comments. ❤️
AI Disclosure
Per this community’s rules for project promotion posts, here is exactly how AI was used in building Reitti:
- Implementation (Assisted): AI helps me generate boilerplate and work through specific problems, but the bulk of the code is written by me, and every change is carefully reviewed and tested before it lands in a release.
- Documentation (Assisted): I use AI as a writing tool to get docs and release notes into an appropriate state. The content, structure and decisions are mine; AI polishes language, clarity and consistency.
Everything else, including architecture, system design, testing, review and deployment, I do by hand.
— Daniel


Hello! Thank you so much for your kind words, they really mean a lot! 😊
I already have some ideas for improving transportation detection down the line. One option is understanding the track beneath the path, sort of a “reverse route planner”: we have the route and then figure out which mode of transport was used along it. Another idea is analyzing the movement pattern in more sophisticated ways. Train rides might be recognizable by their consistent speed with full stops in between (I’m no train operator, but in my mind they accelerate to max speed, cruise, then stop), whereas car rides tend to fluctuate more.
I completely understand your point. Especially when switching between trains and cars, speed alone makes it really hard to pick the right mode. I’ll definitely keep working on improving this!
As for your second point: there’s colota-forwarder, which can fan out GPS points from one system to multiple others. Maybe that would work for your use case? I don’t currently see reitti itself implementing something like that, as it would mean keeping up to date with other services’ APIs and reacting whenever they change.
Thanks again for taking the time to share your thoughts.
Hi, thanks for your replies! I just read both of them and I got some more ideas, feedback and suggestions, so I’m sorry if I ramble a bit.
Yeah, when exploring my data imported in Reitti (or Dawarich for that matter lol) I always thought this would be a great option. This would also enable something else that I forgot to mention, namely a way to auto fix dodgy data (I’ll get back to that later).
With clear identification you could indeed identify trips with far greater confidence; train tracks means a train, highways means car by definition, separated bike paths should mean bicycle or walking, bodies of water will be a boat most of the time, … I imagine identifying exact rules could become tricky in edge cases, but I feel like this would increase the default quality of identification by a lot
That sounds fantastic to me, but my first reaction is that that sounds like an advanced option that would be great in addition to the one you mentioned first. By the way, another option to add might be if the trip passes through point C, because this could be used to differentiate between a commute by bike and by car, for example - since some people switch between modes of travel for the same commute, but the other variables you mentioned would still be the same.
By the way, that reminds me that commute tracking could be cool to keep track of? I’m just spitballing. Identifying repeat trips would probably be useful in any case, as it could enable mass editing.
As for editing, I did think of a few different things. Like I mentioned I think some sort of auto cleanup/smart cleanup system (perhaps with suggestions?) would be nice to have. This could include:
Assuming the logic is possible to implement, you could work with a confidence threshold: everything above that is corected automatically (perhaps with an option to roll back in an edit history queue), everything below that could be added to a user-verifiable list.
Ha, as as was writing that part in my previous comment I thought that something like that might exist and I told myself I’d check later. Mentioning Colocota-Forwarder somewhere in the Reitti documentation might be a good idea?
Also, one final thing I’d love is a mobile app. Not necessarily to track (there are many apps to do that), but as a first-class mobile experience for Reitti. I do understand the challenges on that front though, so I’d understand if this simply won’t happen. If you ever decide to make an app integrated tracking would make sense to add though.
Anyway, thanks for your work on Reitti and I hope my feedback can help you in some way.
Yeah, understanding the data beneath the point would help alot. The problem with that is that we first can not query some system for every point. And second, since the raw data is already jumping around alot, even if we could it is still way off.
Commute tracking could be a way for the statistics. They need to improve a lot.
For the logic to detect valid points, we basically do that already for the visit detection. I am quite happy with it right now. Maybe the second year of reitti will be focused on the trips. 😀
Google did something like the confidence thing in their old timeline (Records.json) format. There for every path they had stored the confidence of the transportation mode.
And finally the mobile app. I doubt it will come the next year but we never know. I would have some ideas like tracking bumps (smoother rides are propably a car or train, elevation above x meters is propably a plane and so on) and such things to have more confidence in the trip detection. Right now, there is an app for everyone available which can report into reitti. So there is no pressure. But I don’t know, I also did not thought about writing my own reverse geocoder but that also came out of a necessity to have some smaller hosting on a small vps.