{"adoption": {"forks": 51, "observed_at": "2026-08-28T04:04:07.572240+00:00", "stars": 1247}, "canonical_url": "https://ross.abutalabs.com/products/workout-tracker", "card": {"archived": false, "artifact_type": "application", "description": "A workout tracking web application for personal use (or family, friends), geared towards running and other GPX-based activities", "domain": ["self-hosted", "sports", "web-development"], "enriched": true, "function": ["self-hosted", "data-visualization", "analytics", "file-upload", "web-framework"], "health_score": 99, "homepage": null, "language": "Go", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["jovandeginste/workout-tracker"], "name": "jovandeginste/workout-tracker", "platform": ["self-hosted", "go"], "pushed_at": "2026-08-18T09:51:30+00:00", "repo": "jovandeginste/workout-tracker", "stars": 1247, "tags": ["fitness-tracker", "gpx", "workout-tracking", "tailwindcss", "leaflet", "heatmap", "route-segments", "maps", "docker", "web-server"], "topics": ["docker", "fitness-tracker", "go", "self-hosted", "tailwindcss", "gpx", "leaflet", "workout-tracker", "workouts"], "urls": [], "use_cases": ["self-host a workout tracker for running activities", "upload and analyze GPX workout files", "track daily stats like weight and step count", "visualize my workout heatmap and routes", "track equipment usage and route segment progress", "sync workouts automatically from Fitotrack via API"], "what_it_is": "A self-hosted workout tracking web application written in Go, geared towards running and other GPX-based activities. It supports uploading GPX/TCX/FIT files, tracking daily stats, route segments, equipment, statistics, and a location heatmap.", "when_to_avoid": ["you need a multi-tenant SaaS-style fitness platform for large groups", "you need deep integration with specific smartwatch vendors or proprietary training metrics", "you primarily do non-GPS indoor workouts without manual entry"], "when_to_choose": ["you want a private, self-hosted alternative to commercial fitness trackers", "your activities are GPS-based (running, cycling, hiking) recorded as GPX/TCX/FIT", "you want everything included in a single Docker deployment for personal or family use"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/workout-tracker", "repo": "jovandeginste/workout-tracker", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "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:04:07.572240+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.572240+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:07:57.965522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e73b693bd2955137c37a6a146d5dde22c73fbe56ae3b552b45ebee158bb3232a", "fetched_at": "2026-08-28T04:04:07.572240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jovandeginste/workout-tracker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 66, "rhythm": 92}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 929, "days_push": 15, "days_rel": 52, "gap_med": 18, "n_releases_24m": 18}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}