{"adoption": {"forks": 3872, "observed_at": "2026-08-28T04:11:03.468861+00:00", "stars": 13533}, "canonical_url": "https://ross.abutalabs.com/products/blockly", "card": {"archived": false, "artifact_type": "library", "description": "The web-based visual programming editor.", "domain": ["web-development", "frontend", "education", "programming-languages", "developer-tools"], "enriched": true, "function": ["editor", "ui-components", "frontend-framework", "programming-language"], "health_score": 100, "homepage": "https://blockly.com", "language": "JavaScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["RaspberryPiFoundation/blockly"], "name": "RaspberryPiFoundation/blockly", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-26T21:32:50+00:00", "repo": "RaspberryPiFoundation/blockly", "stars": 13533, "tags": ["visual-programming", "block-based-coding", "drag-and-drop", "code-generation", "cs-education", "scratch", "education", "web-server", "nodejs"], "topics": [], "urls": [], "use_cases": ["add a block-based visual code editor to a web app", "build a coding education platform for kids", "let users create scripts without writing syntax", "generate code from drag-and-drop blocks", "create custom blocks for a domain-specific visual language", "build a Scratch-like programming environment"], "what_it_is": "Blockly is a JavaScript library that adds a customizable, drag-and-drop visual programming editor to web apps, representing code concepts as interlocking graphical blocks. It is fully client-side, generates code in a target language of your choice, and powers large coding-education platforms like Scratch and Code.org.", "when_to_avoid": ["you need a text-based code editor rather than a visual block editor", "you need server-side or native desktop editing without a browser environment", "you want an end-user app rather than a library to build your own editor", "your project requires minimal JavaScript payload and cannot afford a large client-side library"], "when_to_choose": ["you need a mature, well-documented visual block editor embedded in a browser-based application", "you want users to program without dealing with syntax", "you need code generation in multiple target languages from a visual interface", "you are building an educational coding product"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/blockly", "repo": "RaspberryPiFoundation/blockly", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "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:11:03.468861+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:03.468861+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:13:14.377386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fcd84026b5147effe0c4c5bacec460b105ba4bf4cc854ba5e0406409ef51125", "fetched_at": "2026-08-28T04:11:03.468861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RaspberryPiFoundation/blockly"}, {"content_hash": "3220f225d67276f68a90c225880f8bca0132d44b9e42f215f73d95eb6adc1045", "fetched_at": "2026-08-29T08:08:23.415784+00:00", "kind": "homepage", "missing": false, "url": "https://blockly.com"}, {"content_hash": "24ff827e19ef0e1aa85ca2484f45e4d62e8311a33ab3d4eefc8029a47a844841", "fetched_at": "2026-08-29T08:08:23.418536+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/guides/get-started/what-is-blockly"}, {"content_hash": "272005d9556f629f046f658d982ece30576c898a62186ff6b18a61dafdac897e", "fetched_at": "2026-08-29T08:08:23.420174+00:00", "kind": "site_page", "missing": false, "url": "https://docs.blockly.com/codelabs/getting-started/codelab-overview"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 96}, "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": 4695, "days_push": 7, "days_rel": 29, "gap_med": 29.0, "n_releases_24m": 17}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}