{"adoption": {"forks": 574, "observed_at": "2026-08-28T04:09:48.426935+00:00", "stars": 6769}, "canonical_url": "https://ross.abutalabs.com/products/choo", "card": {"archived": false, "artifact_type": "framework", "description": ":steam_locomotive::train: - sturdy 4kb frontend framework", "domain": ["web-development", "frontend"], "enriched": true, "function": ["frontend-framework", "routing", "state-management", "templating", "ssr"], "health_score": 61, "homepage": "https://choo.io/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["choojs/choo"], "name": "choojs/choo", "platform": ["browser"], "pushed_at": "2026-02-20T10:15:19+00:00", "repo": "choojs/choo", "stars": 6769, "tags": ["unidirectional-data-flow", "minimal-framework", "tiny-bundle", "vanilla-js", "event-driven", "hyperhtml", "nodejs", "javascript"], "topics": ["choo", "dom", "ui", "unidirectional", "minimal", "interface", "modular", "vanilla"], "urls": [], "use_cases": ["build a tiny single-page app with minimal bundle size", "frontend framework with unidirectional data flow", "server-side render a JavaScript app in Node", "simple routing and state management without heavy tooling", "learn a minimal alternative to React or Vue", "build UI with vanilla JS and tagged template HTML"], "what_it_is": "Choo is a tiny 4kb JavaScript frontend framework for building sturdy single-page applications using vanilla JS and HTML. It combines an event-based state system (stores), a router, and DOM rendering with optional server-side rendering in Node.", "when_to_avoid": ["you need a large ecosystem, tooling, and community support", "you rely on JSX, hooks, or React-compatible libraries", "you need long-term active development guarantees", "you want TypeScript-first ergonomics"], "when_to_choose": ["you need a very small bundle (~4kb) and simple API", "you prefer vanilla JS/HTML over framework-specific DSLs", "you want event-based stores and built-in routing", "you need lightweight server-side rendering"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/choo", "repo": "choojs/choo", "role": "main", "score": 53}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "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:09:48.426935+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:48.426935+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:42:31.826044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c31c08f24f73ba3891e7b081a593824997a1710fcd73b72acfe126add7b2df4b", "fetched_at": "2026-08-28T04:09:48.426935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/choojs/choo"}, {"content_hash": "72735d0d034099bb1a4200bef570820d51958c94a2383e9d99cacfd62d7072ca", "fetched_at": "2026-08-29T08:38:51.476661+00:00", "kind": "homepage", "missing": false, "url": "https://choo.io/"}, {"content_hash": "9baf51db0f2d0bfc71f09eced2ee6660c75b29908a291e6e9163f199d205420c", "fetched_at": "2026-08-29T08:38:51.485616+00:00", "kind": "site_page", "missing": false, "url": "https://www.choo.io/docs"}, {"content_hash": "eea3aa31096874c0c6aa3867a7ab625b2f40fdacbfe1e3af72a73b050683ef94", "fetched_at": "2026-08-29T08:38:51.487659+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/choo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 68, "longevity": 100, "rhythm": 8}, "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": 3767, "days_push": 194, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 53, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}