{"adoption": {"forks": 172, "observed_at": "2026-08-28T04:03:34.108649+00:00", "stars": 1095}, "canonical_url": "https://ross.abutalabs.com/products/openfootmanager", "card": {"archived": false, "artifact_type": "application", "description": "An open source soccer/football manager game", "domain": ["gaming-tools", "simulation"], "enriched": true, "function": ["game-engine", "simulation"], "health_score": 99, "homepage": "https://openfootmanager.com/", "language": "Rust", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "experimental", "member_repos": ["openfootmanager/openfootmanager"], "name": "openfootmanager/openfootmanager", "platform": ["windows", "cross-platform", "rust"], "pushed_at": "2026-08-19T22:11:49+00:00", "repo": "openfootmanager/openfootmanager", "stars": 1095, "tags": ["football-manager", "soccer", "tauri", "react", "sqlite", "offline-game", "moddable", "sports-management", "markov-chain", "game-development", "macos", "linux", "desktop"], "topics": ["game", "games", "football-manager", "football", "soccer", "soccer-manager", "simulation", "simulation-engine", "engine", "footballmanager", "manager", "markov", "markov-chain", "soccermanager", "javascript", "react", "rust", "tauri"], "urls": [], "use_cases": ["play a football manager game offline without DRM or microtransactions", "manage a soccer club's squad, tactics, and transfers", "simulate football matches minute-by-minute with live stats", "create custom leagues, teams, and player databases via mods", "train players and hire coaching staff in a management sim", "run an open-source alternative to Football Manager on Linux, macOS, or Windows"], "what_it_is": "Openfoot Manager is a free, open-source football/soccer management simulation game built with a Rust match engine, React UI, and Tauri v2 desktop shell. It offers squad management, tactics, transfers, training, finances, and minute-by-minute match simulation, fully offline and moddable via externalized JSON data files.", "when_to_avoid": ["you need licensed real-world player and club databases", "you want online multiplayer or cloud saves", "you need a fully polished, feature-complete game - it is still in alpha", "you want a mobile or browser-based game"], "when_to_choose": ["you want a free, offline, open-source football management game", "you want a lightweight native desktop app instead of an Electron-based one", "you want to mod leagues, teams, and player data with JSON files", "you want to contribute to or study an open-source game engine written in Rust"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openfootmanager", "repo": "openfootmanager/openfootmanager", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "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:03:34.108649+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.108649+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:47:16.897873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d79e78fea52998239ff865c98ecca259db3fe4a023688db9048a9a35228b2ec", "fetched_at": "2026-08-28T04:03:34.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openfootmanager/openfootmanager"}, {"content_hash": "100a801cc9dbd74fbb0b88dd5fa8c592fe926b005eb4ef81947abe7577ffed65", "fetched_at": "2026-08-29T12:50:19.505134+00:00", "kind": "homepage", "missing": false, "url": "https://openfootmanager.com/"}, {"content_hash": "f225d3a5b56c8ec0ae6423e36413f3181f1e4f8c88a3f67559f5fd0d5cfc3d12", "fetched_at": "2026-08-29T12:50:19.507640+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/features"}, {"content_hash": "9e1b246dd92ce33b117cde6eb8b80c28e5f7fbec73d11b682783ef2e35d24fa8", "fetched_at": "2026-08-29T12:50:19.510065+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/about"}, {"content_hash": "51647670715b649b4ab32f8225abd54f4f3a61df3a1baf67fc31fa7d5ffcbe3b", "fetched_at": "2026-08-29T12:50:19.512298+00:00", "kind": "site_page", "missing": false, "url": "https://openfootmanager.com/blog/openfoot-manager-v011-alpha"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 84}, "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": 2343, "days_push": 14, "days_rel": 107, "gap_med": 8, "n_releases_24m": 4}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}