{"adoption": {"forks": 782, "observed_at": "2026-08-28T04:10:30.991445+00:00", "stars": 9390}, "canonical_url": "https://ross.abutalabs.com/products/clojurescript", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Clojure to JS compiler", "domain": ["compilers", "programming-languages", "web-development", "frontend"], "enriched": true, "function": ["compiler", "programming-language"], "health_score": 97, "homepage": null, "language": "Clojure", "license": "EPL-1.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["clojure/clojurescript"], "name": "clojure/clojurescript", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-08-10T01:25:46+00:00", "repo": "clojure/clojurescript", "stars": 9390, "tags": ["clojure", "javascript", "transpiler", "google-closure", "functional-programming", "compiler", "web-server"], "topics": [], "urls": [], "use_cases": ["compile clojure to javascript", "build frontend apps in clojure", "write browser applications with a lisp", "use clojure on node.js", "run clojure code in the browser", "functional programming for web development"], "what_it_is": "ClojureScript is a compiler that translates Clojure code into JavaScript, designed to emit output compatible with Google Closure's advanced optimization mode. It lets developers write Clojure (a functional Lisp) that runs in browsers, Node.js, and other JavaScript environments.", "when_to_avoid": ["you need a large ecosystem of JavaScript-native tooling without interop friction", "your team has no Clojure experience and the learning curve is a concern", "you need fast startup for short-lived scripts where JVM-based compilation overhead matters"], "when_to_choose": ["you want to write Clojure for browser or Node.js targets", "you value advanced dead-code elimination via Google Closure optimization", "your team already knows Clojure and wants a shared language across backend and frontend"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clojurescript", "repo": "clojure/clojurescript", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "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:10:30.991445+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.991445+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:31:18.288159+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a89d4e4e16a3f0609599c5e5e24bcc1c127cb69543746f49b85260e1000f4933", "fetched_at": "2026-08-28T04:10:30.991445+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/clojurescript"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 83}, "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": 5523, "days_push": 24, "days_rel": 118, "gap_med": 13, "n_releases_24m": 6}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}