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.
Image
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
- Source Code: github.com/dedicatedcode/reitti
- Release Notes: GitHub Releases
- Documentation: dedicatedcode.com/projects/reitti/latest/
- IRC: Drop by
#reittion Libera Chat if you want to chat, ask questions, or hang out. - Support the Project: If you find Reitti useful and want to help support development, you can find me on Patreon and Ko-fi.
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.
843247@lemmy.dbzer0.com 2 hours ago
Those screenshots look so good, great job with the ui! It reminds me of video game maps
danielgraf@discuss.tchncs.de 2 hours 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.