{"adoption": {"forks": 335, "observed_at": "2026-08-28T04:03:41.970912+00:00", "stars": 1128}, "canonical_url": "https://ross.abutalabs.com/products/rootthebox", "card": {"archived": false, "artifact_type": "application", "description": "A Game of Hackers (CTF Scoreboard & Game Manager)", "domain": ["security", "education", "web-development", "gaming-tools"], "enriched": true, "function": ["web-framework", "websocket", "gui", "self-hosted"], "health_score": 73, "homepage": "http://root-the-box.com/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["moloch--/RootTheBox"], "name": "moloch--/RootTheBox", "platform": ["python", "self-hosted", "cross-platform"], "pushed_at": "2026-04-24T08:53:05+00:00", "repo": "moloch--/RootTheBox", "stars": 1128, "tags": ["ctf", "capture-the-flag", "scoreboard", "scoring-engine", "wargames", "penetration-testing-training", "real-time", "docker", "web-server"], "topics": ["security", "scoring-engine", "ctf"], "urls": [], "use_cases": ["host a capture the flag competition", "run a cybersecurity training wargame for students", "set up a CTF scoreboard with real-time updates", "practice penetration testing and forensics challenges", "import OWASP Juice Shop challenges into a CTF game", "manage teams and flags for a hacking event"], "what_it_is": "Root the Box is a self-hosted, real-time capture the flag (CTF) scoring engine and game manager for computer wargames. It provides animated scoreboards, multiple flag types, team or individual play, and configurable scoring options for running security training competitions.", "when_to_avoid": ["you only need a simple static scoreboard without game management", "you are not running security challenges or wargames", "you need a fully managed SaaS CTF service rather than self-hosting"], "when_to_choose": ["you need a full-featured, self-hosted CTF platform with real-time scoreboards", "you want flexible flag types, dynamic scoring, hints, and penalties", "you need team-based play, chat, and admin material distribution", "you want CTFFTime-compatible scoreboard feeds or Juice Shop support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rootthebox", "repo": "moloch--/RootTheBox", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "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:41.970912+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:41.970912+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:38:33.888343+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b37e2c6eea36862cfb5e9e70a89ac04897beaaf5a4d850325f56ecf78ce7776d", "fetched_at": "2026-08-28T04:03:41.970912+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moloch--/RootTheBox"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5288, "days_push": 131, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}