{"adoption": {"forks": 78, "observed_at": "2026-09-01T02:13:57.842424+00:00", "stars": 1157}, "canonical_url": "https://ross.abutalabs.com/products/fittrackee", "card": {"archived": false, "artifact_type": "application", "description": "Self-hosted outdoor activity tracker :bicyclist: [mirror of codeberg repository: https://codeberg.org/FitTrackee/FitTrackee]", "domain": ["self-hosted", "sports", "data-visualization", "web-development"], "enriched": true, "function": ["self-hosted", "data-visualization", "geospatial", "charts", "file-upload"], "health_score": 100, "homepage": "https://docs.fittrackee.org", "language": "Python", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["SamR1/FitTrackee"], "name": "SamR1/FitTrackee", "platform": ["self-hosted", "python"], "pushed_at": "2026-08-30T18:30:10+00:00", "repo": "SamR1/FitTrackee", "stars": 1157, "tags": ["workout-tracker", "gpx", "activity-tracking", "flask", "vue3", "leaflet", "outdoor-activities", "privacy", "maps", "docker", "web-server", "linux"], "topics": ["self-hosted", "activity-tracker", "outdoor-activities", "workout-tracker", "workouts", "gpx", "python", "flask", "vue3", "chartjs", "leaflet", "gpxpy"], "urls": [], "use_cases": ["self-host my workout tracking data instead of Strava", "import GPX files from OpenTracks or FitoTrack and visualize routes", "track cycling and running activities on my own server", "view workout statistics and maps without a cloud service", "keep fitness activity data private under my control"], "what_it_is": "FitTrackee is a self-hosted web application for tracking outdoor workouts and activities from GPX and other exported files, with maps, charts, and statistics stored on your own server. It is built with Python/Flask on the backend and Vue 3 on the frontend, using PostgreSQL with PostGIS.", "when_to_avoid": ["you want automatic sync from fitness devices or cloud services", "you need social features like feeds, followers, or segments", "you don't want to run and maintain your own server with PostgreSQL/PostGIS"], "when_to_choose": ["you want full ownership and privacy of your activity data on your own server", "you already record workouts with apps that export GPX/fit files", "you prefer open-source, self-hosted alternatives to Strava"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fittrackee", "repo": "SamR1/FitTrackee", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.842424+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:32:11.267649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f36c2ce19f7376b430fb0b8ec27349a80f571b63fb28520c967a227c599240", "fetched_at": "2026-09-01T02:13:57.842424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SamR1/FitTrackee"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3440, "days_push": 3, "days_rel": 35, "gap_med": 10, "n_releases_24m": 46}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}