hnq.me
all projects
Current work Started 2022

kit.js

Small interactive runtime for plain HTML

The standalone browser runtime extracted from Kitwork: declarative expressions, scoped state, validation, events, live updates, and SPA navigation without a build step, eval, dependencies, or a virtual DOM.

01 HTML
02 Attributes
03 Scope
04 Behavior
05 DOM
Project context active

01 / Why

Why it began

KitJS started from a practical browser question: how little runtime is needed to make HTML respond to state and user behavior without turning the entire page into a large client application? It grew from earlier experiments with reactive JavaScript, then gradually moved closer to HTML and explicit runtime behavior.

02 / Built

What I built

The work explored declarative attributes, small scopes, DOM updates, validation, and reusable behavior close to the elements that use it. Instead of hiding the browser, it treated the DOM as part of the programming surface and kept the client layer deliberately narrow.

03 / Learned

What it taught me

Reactivity is useful, but it is not the whole model. A browser layer also needs boundaries, lifecycle, state ownership, validation, and a clear answer to what should remain server truth. That shift from reactivity toward runtime thinking became one of the foundations for Kitwork Hydrate and Runtime JS.

Stay close to HTML and the browser.

State needs an owner and a boundary.

Behavior should be smaller than the page around it.

Server truth and client interaction are different jobs.

04 / Today

Where it is now

The earlier KitJS experiments remain part of the history, but kit.js is their active continuation: a standalone client runtime published under Kitwork and also delivered by Kitwork Engine. It keeps the browser layer small while making expressions, state, validation, and navigation usable from ordinary HTML.

Related writing

Notes from the work

All articles

Search