{"adoption": {"forks": 369, "observed_at": "2026-08-28T04:04:41.532310+00:00", "stars": 1425}, "canonical_url": "https://ross.abutalabs.com/products/deckofcards", "card": {"archived": false, "artifact_type": "service", "description": "An API to simulate a deck of cards", "domain": ["apis", "gaming-tools", "web-development"], "enriched": true, "function": ["http-server", "api-framework", "simulation"], "health_score": 38, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["crobertsbmw/deckofcards"], "name": "crobertsbmw/deckofcards", "platform": ["python", "self-hosted"], "pushed_at": "2025-07-08T18:31:02+00:00", "repo": "crobertsbmw/deckofcards", "stars": 1425, "tags": ["cards", "deck-of-cards", "rest-api", "game-simulation", "django", "docker", "web-server"], "topics": [], "urls": [], "use_cases": ["simulate drawing cards for a card game backend", "shuffle a deck of cards via an API", "build a blackjack or poker prototype without implementing deck logic", "self-host a card deck API with Docker", "get random playing cards as JSON for a web app"], "what_it_is": "A REST API service that simulates drawing from one or more decks of playing cards, with shuffle, draw, and pile management endpoints. It is written in Python (Django) and can be self-hosted or used via the hosted instance at deckofcardsapi.com.", "when_to_avoid": ["you need a full card game engine with rules and win detection", "you need offline/in-process card shuffling in your own language", "you need high-throughput game server logic beyond simple deck operations"], "when_to_choose": ["you need card deck simulation over HTTP without writing game logic", "you want a simple self-hostable REST API for card games", "you need deterministic deck state with pile management across requests"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/deckofcards", "repo": "crobertsbmw/deckofcards", "role": "main", "score": 46}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "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:41.532310+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.532310+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:30.063979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92540cac03e8967123d19620e640da3b7763680ae85bbcbf213ab38b4d7bb03", "fetched_at": "2026-08-28T04:04:41.532310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crobertsbmw/deckofcards"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 30, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4144, "days_push": 421, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 46, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}