MicroDOM ecosystem

Overview

The MicroDOM Ecosystem

One standard, two layers: micro behavior, micro semantics. The core is the grammar; the modules are vocabulary you install by importing. Everything is dependency-free, useful on its own, and speaks the same two-method protocol.

Stable In development Experimental

Foundations

Core principles

01

Small by design

Every line of code must justify its existence — for what it says and for what it costs to run. Size is never the goal: it is the evidence left behind when nothing unjustified survives.

02

Readable by default

HTML, CSS and JavaScript should be understandable directly — no transpilers, no generated artifacts between you and the page. What you write is what the browser runs, and what a colleague reads six months later.

03

No build step required

Projects should work with plain files, CDN imports and simple hosting. The distance between editing a file and seeing it live is a browser refresh — for you today, and for whoever inherits the project.

04

Progressive ecosystem

Developers should only include the pieces they actually need. Every module stands alone and installs by importing; nothing arrives that you didn't ask for, and nothing breaks when you leave a piece out.

05

Platform native

The browser already provides the primitives; microDOM embraces web standards instead of abstracting them away.

06

Fit anywhere

Web apps, widgets, docs, embedded interfaces, blockchain interfaces and constrained environments.

Stable

Shipping today

One npm package, five entry points. The whole family — grammar, state, lists, live data and motion — weighs 17.6 KB minified. Adopt it one import at a time.

µ(*)

Mode JS

The reactive DOM engine of the Microdom standard. One function reads, writes and binds the DOM; any object with get/sub keeps it live. 7.4 KB, zero dependencies, no build step.

Stable · v2.0.0
[µ*]

Mode CSS

The design baseline for the content web. Classless, cascade-first: semantic HTML styled out of the box, an exact set of µ-* attributes for layout, and classes reserved for state. 11.6 KB minified, 3.1 KB gzip.

Stable · v1.0.0

Mode JS Family

One package, one language. The core is the grammar — select, read, write, traverse, bind — and every module adds vocabulary through the same µ(...) call: state, keyed lists, live data, motion. Each piece is independent, installs by importing, and speaks the atom protocol; together they weigh 17.6 KB.

Where did Mode Bind go? It graduated. Reactive data binding is no longer a separate library on a roadmap — it shipped inside the 2.0 core as the atom protocol: pass any object with get/sub to any µ command and the DOM stays in sync. The promise became grammar.

@microdom/modeThe grammar — select, read, write, traverse, bind7.4 KB
@microdom/mode/atomMode Atom — atom, computed, effect1.1 KB
@microdom/mode/listMode List — keyed rendering with lifecycle1.4 KB
@microdom/mode/dataMode Data — columnar store for live feeds2.4 KB
@microdom/mode/moveMode Move — animation through the same call5.3 KB
In development

On the workbench

Mode Router

An SPA router. Map URLs to views with the smallest possible surface area — no opinions you didn't ask for.

In development

Mode Base

Persistence for the data that stays: a compact JSON store over localStorage whose keys speak the atom protocol — carts, sessions and preferences that survive reload and sync across tabs.

In design
Research

Research

The third rung of the ladder. Ideas enter as research, harden on the workbench, and ship as standard — data binding walked this path, from a card on a roadmap to the grammar of the 2.0 core.

The bar here is the same one the code answers to: we publish measurements, not intentions. A research line is listed when it carries a question, a constraint and a finding — the way the live-table threshold (500 instruments, ~1 ms per tick) was measured before it shipped as Mode Data. Lines currently in the lab appear here when their numbers are ready.