buuh

๐Ÿš‚๐Ÿš‹๐Ÿš‹๐Ÿš‹๐Ÿš‹๐Ÿ‘ป
The sturdy little frontend framework โ€” a friendly fork of choo, rebuilt for the modern platform.

> **buuh is a fork of [choo](https://github.com/choojs/choo)** โ€” same > API, same philosophy, modern engine. It exists because we love choo > and wanted it alive on today's platform; all credit for the design > belongs upstream (see [Credits](#credits)). Everything is MIT, and if > upstream ever wants this work home, the door is open > ([`docs/upstream-rfc-draft.md`](docs/upstream-rfc-draft.md)). ## What is this buuh is a small framework for building frontend applications with plain JavaScript and HTML. State lives in stores, changes flow through an event emitter, views are tagged template literals, and re-renders morph the real DOM. The whole framework โ€” core, html engine, morphing, hydration, router, event bus โ€” is **7.97 kB min+gzip** (7.15 kB brotli), enforced by CI. ```js import choo from '@uhhm/buuh' import html from '@uhhm/buuh-html' const app = choo() app.use((state, emitter) => { state.count = 0 emitter.on('increment', (n) => { state.count += n emitter.emit('render') }) }) app.route('/', (state, emit) => html`

count is ${state.count}

`) app.mount('body') ``` ## Getting it From the uhhm registry (one `.npmrc` line routes the scope; everything else still resolves from npmjs): ```console $ echo "@uhhm:registry=https://project.uhhm.no/api/packages/uhhm/npm/" >> .npmrc $ npm i @uhhm/buuh @uhhm/buuh-html $ npm i -D @uhhm/bankai ``` Or with no package manager at all โ€” one file, one import map: ```html ``` See [`docs/publishing.md`](docs/publishing.md) for how the registry and the CDN bundle fit together. ## Why this fork - **No build step, anywhere.** Templates parse at runtime (cached per call site in a WeakMap, clone-based instantiation โ€” as fast as choo's old compile-time transform, without the toolchain). An import map and a `