Hey everyone, Daniel here.

For those unfamiliar, Reitti is an open-source, privacy-focused, self-hosted location tracker and Google Timeline alternative. It ingests data from open clients like OwnTracks or GPSLogger, geotags your Immich photos, and keeps your travel history completely under your own control.

Over the past few weeks, several updates have landed. The main addition is something I would have done way earlier, but never found the time for: a completely reworked Statistics page. These updates also include a new fitness integration, major visit detection improvements, and substantial security hardening, thanks to a lot of PRs and security advisories I received over the last month.

Here is an overview of what is new.


The New Statistics Page

The statistics section used to be just a handful of simple charts. It has been rebuilt into a movement and lifestyle report that you can view across months, years, or your entire history:

  • Key Figures: Distance totals, percentage of weekday time spent at home, places visited (including how many were new), nights away from home, and your Eddington number for distance.
  • Weekday vs. Weekend Habits: A side-by-side comparison showing how routines change between workdays and weekends (daily distances, typical departure/return times, stop counts).
  • Movement Radar: A radar chart showing visited locations organized by direction and distance relative to home.
  • Day Classification Calendar: Days are automatically categorized (Commute, Wander, Travel, Home, or Untracked), with low-data days faded out so they do not distort your overall metrics.
  • Routines and Transport Breakdown: Recurring locations, stay durations, and trip breakdowns (time, distance, count, average speed) across transport modes.

I was also able to reuse several components from the new statistics page to improve the visuals and usefulness of the aggregated timeline view when looking at more than two weeks of data at once. You can now click directly on a day row inside the chart to inspect it, and your top places for that period are also selectable.

Intervals.icu / Garmin Integration

If you track activities like running, cycling, or hiking with a Garmin watch, you no longer have to export and upload FIT files manually.

Reitti now supports background syncing via Intervals.icu:

Garmin Watch -> Garmin Connect -> Intervals.icu -> Reitti

Once configured with an API key, Reitti runs an initial historical import and continues syncing new activities automatically in the background. (Note: Due to Strava’s API terms, activities originating strictly from Strava cannot be forwarded via this bridge).


Smarter Visit & Transport Detection

The data processing pipeline received several core improvements:

  • Speed-Based Visit Detection: Instead of relying on rigid time and distance guards when dealing with sparse points (like battery-saver modes in OwnTracks), Reitti now derives stationary visits based on speed between points. This makes detection significantly more accurate.
  • Better Transition Handling: Detection logic handles intermediate edge cases much more gracefully, preventing anomalous slowdowns during fast travel (like temporary traffic slowdowns) from misclassifying trips.

A Note on Security and Hardening

Security has been a major focus recently. In one release alone, an external contributor submitted 16 security-related PRs addressing various areas across the codebase. Alongside those, several reported advisories were resolved, including issues around share-link scoping, file uploads, and map style handling.

Most of these issues boil down to scenarios where client-side code could be executed in the context of another user if triggered. Because of that, the baseline assumption remains: you should trust the users on your instance.

If your instance is exposed to the internet, upgrading to the latest version is always a good idea. I will continue doing my best to fix these types of vulnerabilities as they are found, provided the fixes do not get in the way of usability.


Other Notes

Arch Linux / AUR: Huge thanks to hashworks for packaging Reitti for Arch Linux! It is available directly in the AUR at aur.archlinux.org/packages/reitti. This one really made my day after I found it.


What’s Next: Notifications (Looking for Community Input!)

For upcoming releases, I want to introduce a notification mechanism.

Some potential use cases:

  • System events: Version upgrade alerts, background job updates (e.g., successful or failed imports).
  • Memory triggers: Automatic detection when you stay overnight away from home, paired with a gentle nudge to turn that trip into a Memory.
  • Workflow triggers: Alerts for geofence crossings of users (if I ever implement geofences) or when a device did not report for x hours.

Right now, I am looking at built-in in-app notifications and third-party services like ntfy.sh.

What other notification channels do you rely on in your self-hosted stack (Gotify, Webhooks, Apprise, Telegram, email)? And what kind of events or lifestyle nudges would actually be useful to you without feeling like spam?


Links & Community

Feedback, questions, and ideas are always welcome!

— Daniel


AI Project Disclosure

  • Implementation (Assisted): I use AI to write repetitive boilerplate code that is tedious to write manually. The majority of the codebase is written directly by me, and all generated code is reviewed and tested by me.
  • Testing (Pair): Approximately an even split between human-authored tests and AI-assisted generation for test scenarios and edge cases.
  • Documentation (Assisted): I use AI as an editing tool to help refine phrasing, documentation, and release notes into clean English. All content, technical decisions, and structure are mine.
    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 minutes ago

      Thank you 🙏

      The comparison to video games never occurred to me, but perhaps as someone who grew up with video games, there is some intrinsic motivation in me that makes it look like that. Now that you have mentioned it, I see it too.

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

    What’s the best app to send gps locations to the server in your opinion? I’ve been using gpslogger but idk, seems very… Barebone

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

      For my personal data, I use GPSLogger; it is fine and does what it is supposed to do. I never look at it, so I do not need any fancy features, and the main selling point for me is that it also saves the GPS data on my phone so that, in case of an error, I can still pull it and import it. OwnTracks also works fine; if you have multiple users, one benefit could be that Reitti can send the location of your other users back to OwnTracks so you can see their locations directly in the app. Finally, if you want more features, there is also Colota, which is the most modern of them all.

  • curbstickle@anarchist.nexusM
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 hours ago

    I love seeing these updates Daniel! The new statistics page looks great, I’m going to give my local instance an update and check it out

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

      Thank you for your kind words. Let me know what you think after the upgrade.

      I love seeing these updates, Daniel!

      That counts as a vote for the upgrade notification system. :) Right now, I’m trying to reduce the number of posts about reitti across all social platforms for different reasons, and the notification system would help get the word out about new versions.