Choo's modular core was engineered from the ground up to be smaller and more efficient than every other alternative out there. This was made possible by building out the core components over the span of 3 years and combining them under a tiny API.
We think learning frameworks is boring. So instead of inventing a new language, Choo relies on vanilla JS and HTML. Combined with its small API and clean architecture this means Choo is easy to get started with, and stays that way as projects grow in scope and humans.
var html =require('choo/html')var choo =require('choo')var app = choo()app.use(titleStore)app.route('/', mainView)app.mount('body')functionmainView (state, emit){return html`<body><h1>Title:${state.title}</h1><inputtype="text"value="${state.title}"oninput=${update} /></body> `functionupdate (e){ emit('update', e.target.value) }}functiontitleStore (state, emitter){ state.title ='Not quite set yet' emitter.on('DOMContentLoaded',function (){ emitter.on('update',function (newTitle){ state.title = newTitle emitter.emit('render') }) })}