{"adoption": {"forks": 155, "observed_at": "2026-08-28T04:05:45.452626+00:00", "stars": 1862}, "canonical_url": "https://ross.abutalabs.com/products/deployinator", "card": {"archived": true, "artifact_type": "framework", "description": "Deployinate!", "domain": ["web-development"], "enriched": true, "function": ["deployment", "ci-cd", "web-framework"], "health_score": 10, "homepage": "http://etsy.me/deployinator", "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["etsy/deployinator"], "name": "etsy/deployinator", "platform": ["ruby", "self-hosted"], "pushed_at": "2019-09-27T15:51:40+00:00", "repo": "etsy/deployinator", "stars": 1862, "tags": ["deployment-framework", "ruby-gem", "continuous-deployment", "etsy", "multi-stage-pushes", "devops", "automation", "web-server"], "topics": ["non-sox"], "urls": [], "use_cases": ["deploy code to production with a one-click web UI", "set up multi-stage deployment pipelines with staging and production environments", "organize deployments by stack such as web and search", "customize deployment workflows with plugins and template hooks", "tail deployment logs in real time"], "what_it_is": "Deployinator is a deployment framework extracted from Etsy, packaged as a Ruby gem, used to orchestrate multi-stage code pushes across stacks and environments like staging and production. It provides a web UI with environment buttons, stack definitions, plugins, and a deploy log tailer.", "when_to_avoid": ["you need a modern, actively maintained deployment tool", "your stack is not Ruby-based", "you want Kubernetes-native or GitOps-style deployments"], "when_to_choose": ["you run a Ruby-based infrastructure and want Etsy-style continuous deployment", "you need a self-hosted deployment tool with simple environment buttons", "you want a battle-tested deployment framework you can extend with plugins"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/deployinator", "repo": "etsy/deployinator", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "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:05:45.452626+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.452626+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.758931+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7158958fd5719adb96c69df862eb81a4f1f1f67df7b45111ee0191e3481c7e9c", "fetched_at": "2026-08-28T04:05:45.452626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/etsy/deployinator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5514, "days_push": 2532, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}