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

  • electric_nan@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 hours ago

    Looks really cool. I’ve been using own tracks with Nextcloud, but it’s not very reliable, especially with my wife’s iPhone. Unfortunately for me, Reitti hasn’t been packaged for Yunohost yet, but I will keep an eye on it!

  • Appoxo@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    10 hours ago

    Currently using dawarich and kind of unhappy with the transportation detection. So I am partly interested in switching.

    How would you compare reitti with dawarich?

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

      Hello! If you ask me personally. I am happy with how reitti is working today. It suits my own movement patterns well enough, but everyone is different, so your mileage may certainly vary. I am improving it step by step though, so it should keep getting better over time.

      On a general comparison with dawarich: I honestly do not know enough about it anymore to give you a fair assessment. I know they have a comparison on their website, but as with all of these, it is not completely correct. That is simply the nature of such comparisons, and it is also why I will not make one myself. After all, I would be hopelessly biased.

      So here is my suggestion: if you have Docker and some gpx files handy (you can export them straight from dawarich), spin up an instance with docker-compose and throw the gpx files at it. See how it goes and whether it fits your needs. If it does not, no worries at all, just shut it down and never think about it again. Or maybe come back and give some feedback. 🙂

      • Appoxo@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 hour ago

        Your last suggestion was essentially my plan (compared the featureset of both a bit after posting the question) :)
        The cons from the dawarich-dev were not of essence for me and your implementation looks very nice.

        Maybe you can answer it:
        I use GPSLogger to track my movement.
        How well does Reitti work with it? Any direct experience from you or the community?

        • danielgraf@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          38 minutes ago

          I personally mainly use GPSLogger on my phone. I had one problem with it but this is remedied in V136 of it and now it can use the HTTP File Upload which brings the battery usage down a lot. So in my experience this works really well. There is also an autoconfig button. You can open the Integrations Settings page on your phone and press the button. This will configure GPSLogger so you do not have to enter the address and the auth token by hand.

          I would check the settings afterwards. I have set mine to not report anything with more than 25m accuracy. And upload the data once an hour.

  • curbstickle_lw@lemmy.worldM
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 day ago

    The immich service connection.with writeback is awesome!

    My kids have some dinky little digital cameras with no GPS or WiFi or anything, just writes photos locally to microsd, so obviously no location data. I use my phone, sure, but when traveling I’ll use my DSLR that also has no GPS (OK it does have WiFi, but I don’t use it).

    Which turns into me tagging every time we get back from somewhere.

    Going to give that immich link a try!

    • irmadlad@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      I wonder if you could pair your phone with your DSLR so that you have access to GPS location tagging.

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      That’s exactly the use case someone reported recently.

      Right now, you can press a button on an individual image in Reitti if it’s aligned by time rather than location. And if you’ve got multiple images and you’re feeling brave (in other words, you trust Reitti 😄), there’s also a button to do it all at once from the gallery in the map bubbles.

      Give it a try, and let me know how it goes! If anything needs tweaking, I’m happy to adjust it. Happy to hear feedback either way!

      • curbstickle_lw@lemmy.worldM
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        Well, perfect use case for the test immich instance!

        I’ve got a few day trips recently that will make for good tests for over the weekend.

  • randomname01@feddit.nl
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    Recently started using Reitti, and I have to say I’m pretty impressed. I did notice two things that would be nice to have though:

    • Better awareness of transportation modes and/or the option to reclassify identical trips in bulk. I mostly take the train, but I also use a car from time, and the current way of classifying (only based on speed, I think?) wrongly classifies a lot of train trips as being by car. It’d be nice to perhaps implement logic that trips from one train/bus/ferry station to another are probably done by the respective mode of transportation, or otherwise a way to reclassify all trips between the same places via the same route at once would be great

    • A way to forward tracking information to other apps. I run Phonetrack (Nextcloud app), Dawarich and Reitti alongside each other, but this requires shenanigans with forwarding requests or multiple tracking apps. It’d be cool if you implemented forwarding to other services, if possible with caching options.

    Either way, Reitti is great and I’m impressed by the progress over the last year!

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 day ago

      otherwise a way to reclassify all trips between the same places via the same route at once would be great

      After thinking about this part a bit: I could add something like a rule system to reitti. I will do it either way since 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

      -> switch it to transit

      Another idea: adding hints for the classification in the transportation mode setting. Like: during the workweek, between 07:00 and 09:00 it is more likely I take the train instead of the car. The classification could then pull that information in and decide based on the hints which one to choose

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 day ago

      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.

      • randomname01@feddit.nl
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 day 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
          1 day 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.