{"adoption": {"forks": 1421, "observed_at": "2026-08-28T04:08:52.485217+00:00", "stars": 4504}, "canonical_url": "https://ross.abutalabs.com/products/running_page", "card": {"archived": false, "artifact_type": "application", "description": "Make your own running home page", "domain": ["data-visualization", "sports", "self-hosted", "web-development"], "enriched": true, "function": ["data-visualization", "etl", "static-site-generator", "web-scraping"], "health_score": 88, "homepage": "https://running-page.vercel.app", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["yihong0618/running_page"], "name": "yihong0618/running_page", "platform": ["python"], "pushed_at": "2026-07-16T01:25:23+00:00", "repo": "yihong0618/running_page", "stars": 4504, "tags": ["running", "gpx", "strava", "garmin", "nike-run-club", "adidas", "mapbox", "personal-homepage", "vercel", "github-actions", "nodejs", "web-server"], "topics": ["nike", "strava", "adidas", "gpx", "github-secret", "vercel", "garmin-watch", "garmin", "mapbox", "club-nike", "data-visualization", "data-analysis"], "urls": [], "use_cases": ["create a personal running homepage with all my activities", "sync Strava and Garmin workouts to a personal site", "visualize my running routes on a map", "show my running stats on GitHub Pages", "import GPX files and display them as a running dashboard", "track yearly running distance on a personal page"], "what_it_is": "A self-hosted personal running homepage that syncs workout data from services like Strava, Garmin, Nike Run Club, and GPX files, then visualizes routes and statistics on an interactive map. It deploys easily to Vercel or GitHub Pages with automated data sync via GitHub Actions.", "when_to_avoid": ["you need a full-featured fitness analytics platform with training plans", "you want a mobile app rather than a web page", "you need real-time activity tracking or coaching features"], "when_to_choose": ["you want a beautiful, ready-made personal running page with multi-source data sync", "you want free hosting on Vercel/GitHub Pages with automated GitHub Actions sync", "you use Strava, Garmin, Nike Run Club, Keep, Codoon, or GPX files"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/running_page", "repo": "yihong0618/running_page", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "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:08:52.485217+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.485217+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:23.944424+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ecf4ac0788e84bff39aeed55b1664fc4993bc0cefd381fc187ba31386f0314f", "fetched_at": "2026-08-28T04:08:52.485217+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yihong0618/running_page"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 100, "rhythm": 40}, "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": 2176, "days_push": 49, "days_rel": 499, "gap_med": 1, "n_releases_24m": 2}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}