{"adoption": {"forks": 74, "observed_at": "2026-08-28T04:06:51.290789+00:00", "stars": 2435}, "canonical_url": "https://ross.abutalabs.com/products/reitti", "card": {"archived": false, "artifact_type": "application", "description": "Reitti is a comprehensive personal location tracking and analysis application that helps you understand your movement patterns and significant places. The name \"Reitti\" comes from Finnish, meaning \"route\" or \"path\".", "domain": ["privacy", "self-hosted", "analytics"], "enriched": true, "function": ["geospatial", "analytics", "data-visualization", "self-hosted"], "health_score": 100, "homepage": "https://www.dedicatedcode.com/projects/reitti/", "language": "Java", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["dedicatedcode/reitti"], "name": "dedicatedcode/reitti", "platform": ["self-hosted"], "pushed_at": "2026-08-26T16:51:32+00:00", "repo": "dedicatedcode/reitti", "stars": 2435, "tags": ["location-tracking", "gps", "timeline", "owntracks", "location-sharing", "quantified-self", "maps", "web-server", "docker"], "topics": ["geolocation", "google-maps", "gps-location", "owntracks-recorder", "timeline"], "urls": [], "use_cases": ["self-host my own Google Timeline replacement", "track my location history from OwnTracks and view it on a map", "see a daily timeline of places I visited and trips I took", "share my live location with family on my own server", "detect transport modes like walking, cycling, and driving from GPS data", "clean up and merge GPS tracks from multiple devices", "let friends follow my journey via a shareable link"], "what_it_is": "Reitti is a self-hosted personal location tracking and analysis application that visualizes movement patterns, visits, trips, and significant places on an interactive map with a daily timeline. It ingests GPS data from multiple devices (e.g., OwnTracks), supports live location sharing with federation and magic links, and includes tools for cleaning and stitching GPS data.", "when_to_avoid": ["you want a zero-setup mobile app that just works without hosting a server", "you need real-time navigation or routing rather than history analysis", "you cannot run a Java-based web service with a database"], "when_to_choose": ["you want full ownership and privacy over your location history", "you already use OwnTracks or GPS loggers and want analysis and visualization", "you need multi-user or federated live location sharing on your own infrastructure"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/reitti", "repo": "dedicatedcode/reitti", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.290789+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:31:02.255262+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6e51f3cfba1c9ea18d5ddd20c2e4ffd035ef86212db956c8db82ec82f6b584a", "fetched_at": "2026-08-28T04:06:51.290789+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedicatedcode/reitti"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:12:22.270634+00:00", "kind": "homepage", "missing": false, "url": "https://www.dedicatedcode.com/projects/reitti/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 33, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 465, "days_push": 7, "days_rel": 8, "gap_med": 1, "n_releases_24m": 64}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}