{"adoption": {"forks": 150, "observed_at": "2026-08-28T04:07:45.603648+00:00", "stars": 3134}, "canonical_url": "https://ross.abutalabs.com/products/klipse", "card": {"archived": false, "artifact_type": "plugin", "description": "Klipse is a JavaScript plugin for embedding interactive code snippets in tech blogs.", "domain": ["web-development", "education", "developer-tools", "programming-languages"], "enriched": true, "function": ["interpreter", "editor", "plugin-system", "developer-tools"], "health_score": 20, "homepage": "http://blog.klipse.tech/", "language": "HTML", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["viebel/klipse"], "name": "viebel/klipse", "platform": ["browser"], "pushed_at": "2024-10-01T08:57:24+00:00", "repo": "viebel/klipse", "stars": 3134, "tags": ["interactive-code-snippets", "in-browser-evaluation", "code-editor", "blogging", "codemirror", "live-coding", "multi-language", "javascript", "web"], "topics": ["clojure", "clojurescript", "interactive-snippets", "javascript", "code-evaluation", "ruby", "scheme", "prolog", "react", "reactjs", "klipse-plugin", "codemirror-editor", "evaluation", "python", "brainfuck", "lua", "ocaml", "reasonml", "common-lisp"], "urls": [], "use_cases": ["embed interactive code examples in a tech blog", "make tutorial code snippets runnable in the browser", "let readers edit and evaluate code as they type", "add live Clojure or Ruby REPL snippets to documentation", "create interactive programming lessons without a backend", "evaluate Python or SQL snippets client-side in a web page"], "what_it_is": "Klipse is a JavaScript plugin that transforms static code snippets in web pages into live, interactive snippets that evaluate in the browser as the user types. It supports many languages including JavaScript, Clojure, Ruby, Python, Scheme, Prolog, PHP, SQL, Go, and Lua, all evaluated client-side with no server involved.", "when_to_avoid": ["you need server-side execution or sandboxed security guarantees", "you need languages or runtimes not supported by in-browser evaluators", "you need a full hosted playground or IDE experience"], "when_to_choose": ["you write technical blogs or tutorials and want runnable code examples", "you need client-side evaluation with no server infrastructure", "you want to support many languages with one lightweight plugin"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/klipse", "repo": "viebel/klipse", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "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:07:45.603648+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.603648+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:26:06.761180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46917869fd88b4f9ba6720c1344b2d22bd2808da0943af8d15e730532063645b", "fetched_at": "2026-08-28T04:07:45.603648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/viebel/klipse"}, {"content_hash": "16ff5dc5304d7152ee49c0ae986fad91640d5f097f8501e9e079a509e5d47a20", "fetched_at": "2026-08-29T09:40:52.376364+00:00", "kind": "homepage", "missing": false, "url": "http://blog.klipse.tech/"}, {"content_hash": "2cbbffdd0999a0dd08a4da5d7f367cf7759c3cc9d81acf293895a680fe228886", "fetched_at": "2026-08-29T09:40:52.385512+00:00", "kind": "site_page", "missing": false, "url": "https://blog.klipse.tech/about"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3940, "days_push": 701, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}