{"adoption": {"forks": 98, "observed_at": "2026-08-28T04:03:46.211043+00:00", "stars": 1148}, "canonical_url": "https://ross.abutalabs.com/products/schemahero", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A Kubernetes operator for declarative database schema management (gitops for database schemas)", "domain": ["databases", "cloud-computing", "infrastructure-as-code", "developer-tools"], "enriched": true, "function": ["database", "infrastructure-as-code", "deployment", "developer-tools"], "health_score": 99, "homepage": "https://schemahero.io", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["schemahero/schemahero"], "name": "schemahero/schemahero", "platform": ["cli", "go", "cloud", "self-hosted"], "pushed_at": "2026-08-21T17:35:01+00:00", "repo": "schemahero/schemahero", "stars": 1148, "tags": ["database-schema", "gitops", "kubernetes-operator", "schema-migration", "declarative-schema", "database-migrations", "plan-and-apply", "devops", "containers", "kubernetes", "docker"], "topics": ["database-schema", "database-management", "kubernetes", "kubernetes-operator", "gitops", "database-schemas", "manage-databases", "hacktoberfest"], "urls": [], "use_cases": ["manage database schema migrations declaratively with yaml instead of numbered migration files", "run gitops for database schemas in kubernetes", "generate alter table statements from a desired schema definition", "preview sql changes before applying them to a database", "manage schemas for postgres, mysql and other databases across dev, staging and prod", "apply schema changes to cloud databases like rds or cloudsql from a kubernetes operator"], "what_it_is": "SchemaHero is a database schema migration tool that lets you define table schemas declaratively in YAML and generates the SQL needed to reconcile the live database with that desired state. It works both as a standalone CLI (plan/apply workflow) and as a Kubernetes operator that manages schemas as Kubernetes resources, supporting in-cluster and external databases like RDS and CloudSQL.", "when_to_avoid": ["you prefer imperative, hand-written migration files with full control over each step", "you are not using kubernetes and only need a simple migration runner", "you need features like data migrations or seed data, which are out of scope"], "when_to_choose": ["you want declarative, git-reviewed schema changes instead of sequenced migration scripts", "your team runs on kubernetes and wants schemas as cluster resources", "you need the same schema definition to work across empty dev databases and existing staging/prod databases", "you want to see exactly what sql will run before executing it"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/schemahero", "repo": "schemahero/schemahero", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "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:46.211043+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.211043+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:51.710154+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "16c8710dd0ac02882170587c4c6fa1486204e0e7dd83ab8e023b86fb1a873655", "fetched_at": "2026-08-28T04:03:46.211043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/schemahero/schemahero"}, {"content_hash": "b4831d9a5f0833cc98efb4c153f8d601a2900fd931e36beed52b06e4b5ff9c76", "fetched_at": "2026-08-29T12:39:06.841735+00:00", "kind": "homepage", "missing": false, "url": "https://schemahero.io"}, {"content_hash": "91919edc69b89eb8a8dbe3100e1d2c36b8655c272a310ae6c83adcdc3f318e6e", "fetched_at": "2026-08-29T12:39:06.850675+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/concepts"}, {"content_hash": "aa05e9d13aedaa12aadcafcd154d4dcff13d7b529a34f7d63e5240ed39e9d871", "fetched_at": "2026-08-29T12:39:06.852554+00:00", "kind": "site_page", "missing": false, "url": "https://schemahero.io/getting-started/quickstart"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 97}, "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": 2685, "days_push": 12, "days_rel": 21, "gap_med": 17, "n_releases_24m": 24}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}