# choojs/choo

:steam_locomotive::train: - sturdy 4kb frontend framework

Repository: https://github.com/choojs/choo
Canonical: https://ross.abutalabs.com/products/choo
Homepage: https://choo.io/
Language: JavaScript
License: MIT
License Family: permissive
Topics: choo, dom, ui, unidirectional, minimal, interface, modular, vanilla
Last push: 2026-02-20T10:15:19+00:00

## Health v2 (maintenance only)
Score: 53/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 68, release rhythm 8, longevity 100
- inputs: {"age_days": 3767, "days_push": 194, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 6769, forks 574 (observed 2026-08-28T04:09:48.426935+00:00)

## 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.

## 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

## 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

## 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

## Facets
- artifact type: framework
- maturity: maintenance
- function: frontend-framework, routing, state-management, templating, ssr
- domain: web-development, frontend
- platform: browser
- tags: unidirectional-data-flow, minimal-framework, tiny-bundle, vanilla-js, event-driven, hyperhtml, nodejs, javascript

## Member repositories
- choojs/choo (main) score 53

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:48.426935+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:42:31.826044+00:00, confidence not recorded.
  - readme: https://github.com/choojs/choo (fetched 2026-08-28T04:09:48.426935+00:00, sha c31c08f24f73)
  - homepage: https://choo.io/ (fetched 2026-08-29T08:38:51.476661+00:00, sha 72735d0d0340)
  - site_page: https://www.choo.io/docs (fetched 2026-08-29T08:38:51.485616+00:00, sha 9baf51db0f2d)
  - registry_npm: https://registry.npmjs.org/choo (fetched 2026-08-29T08:38:51.487659+00:00, sha eea3aa310968)
- Data as of 2026-08-30T08:39:29.467469+00:00.
