{"adoption": {"forks": 335, "observed_at": "2026-08-28T04:05:16.959614+00:00", "stars": 1651}, "canonical_url": "https://ross.abutalabs.com/products/hedy", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Hedy is a gradual programming language to teach children programming. Gradual languages use different language levels, where each level adds new concepts and syntactic complexity. At the end of the Hedy level sequence, kids master a subset of syntactically valid Python.", "domain": ["education", "programming-languages", "web-development"], "enriched": true, "function": ["programming-language", "interpreter"], "health_score": 100, "homepage": "https://www.hedy.org", "language": "CSS", "license": "EUPL-1.2", "license_family": "copyleft", "maturity": "active", "member_repos": ["hedyorg/hedy"], "name": "hedyorg/hedy", "platform": ["cross-platform", "python"], "pushed_at": "2026-08-26T00:58:59+00:00", "repo": "hedyorg/hedy", "stars": 1651, "tags": ["teaching", "kids", "gradual-language", "python-education", "classroom", "multilingual", "self-hosted", "education", "web-server"], "topics": ["hedy", "gradual", "education", "programming", "hacktoberfest"], "urls": [], "use_cases": ["teach kids to code step by step", "transition students from Scratch to Python", "teach programming in a non-English language", "run a classroom coding course with lesson plans", "let children write their first text-based programs in a browser", "self-host a programming learning environment offline"], "what_it_is": "Hedy is a gradual programming language and web-based teaching environment designed to teach children (ages 10+) programming, building up through levels toward a subset of Python. It is multilingual (47+ languages), free, open source, and includes classroom features like lesson plans and teacher customization.", "when_to_avoid": ["you need a production-grade general-purpose programming language", "your audience is experienced developers", "you need offline-first tooling without any setup (though an offline version exists)", "you require advanced language features beyond Hedy's Python subset"], "when_to_choose": ["you are teaching programming to children around age 10 and up", "learners find Python's full syntax overwhelming at first", "you need a programming language localized to your students' native language", "you want a free classroom tool with teacher accounts and lesson plans"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hedy", "repo": "hedyorg/hedy", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "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:16.959614+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.959614+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:02.075949+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "127f4ea85c84488a030b2d1c2aeebf8913722db1f6e944b7c31f07bfb1dd530e", "fetched_at": "2026-08-28T04:05:16.959614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hedyorg/hedy"}, {"content_hash": "97e5b21abdf97bc120fef980a7686e8d50aefea3876cf12f77051e2ae2af55ed", "fetched_at": "2026-08-29T11:18:02.103929+00:00", "kind": "homepage", "missing": false, "url": "https://www.hedy.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "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": 2459, "days_push": 8, "days_rel": 7, "gap_med": 19.5, "n_releases_24m": 23}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}