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

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

  • randomname01@feddit.nl
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    18 hours ago

    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.

    One option is understanding the track beneath the path, sort of a “reverse route planner”

    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

    I am searching for a way to add notifications to reitti. One rule then could be, if there is a trip between place A and B, during the workweek between 07:00 and 09:00, re-classify this as train ride. But this would override then the walk to the trainstation. So the rule would need to be:

    • Trip between Place A and Place B
    • during workweek
    • between 07:00 and 09:00
    • trip is classified as driving

    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:

    • Location points jumping away from a road/train track/whatever at an unrealistic speed, especially if the subsequent data points are on that track
    • Same point as above, but with building detection
    • Some sort of auto clustering that could work in the same way; fifty points close to each other, one point 500 metres away and then fifty more points in that same spot probably indicate something fucky with that one rogue point.

    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.

    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.

    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.

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      17 hours ago

      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.