Choo is a 4kB frontend framework for building sturdy applications using event-based architecture and functional programming principles. Current stable version is 7.1.0, released periodically with a focus on minimalism. It is designed to be tiny (4KB), with a small API (6 methods), event-driven state management, and isomorphic rendering (browser and Node). Unlike larger frameworks like React or Vue, Choo emphasizes minimal tooling (e.g., works with browserify), no virtual DOM diffing (uses morphdom), and a straightforward event system. Its ecosystem includes plugins and a CLI via choo-cli.
npm install chooNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Sets up a minimal Choo app with a counter, demonstrating state, events, and routing.
Rewrite components as pure functions using html template literals; remove choo/components import.
Change 'require('choo/view')' to 'require('choo/html')' or 'import html from 'choo/html''.Replace choo-log with choo-devtools (npm install choo-devtools) and app.use(devtools()).
Always call emitter.emit('render') after mutating state inside event handlers.Use the second argument (emit) to emit events; emitter is only available in plugins.
Install choo@7 or use 'require('choo/view')' for older versions.Remove 'new' keyword: const app = choo();