Blog
Writing about Micra
Migration guides, the anti-patterns worth avoiding, and how the library works under the hood.
September 9, 2026
Astro islands for light reactivity: zero JavaScript where none is needed
How micrajs.dev uses the @micrajs/astro integration: each interactive spot on a page is its own island, loads its own small chunk on its own trigger, and a page with nothing to hydrate ships no Micra at all.
Read →September 8, 2026
From jQuery to Micra: rewriting a typical page
The same page — a mobile menu, tabs, and a request form — written first in jQuery, then in Micra, to show what moves out of the DOM once state lives in one object.
Read →September 7, 2026
The landing page is almost done — now the small stuff. What do you build it with?
The bits left after the mockup — burger menu, FAQ, pricing toggle, reviews carousel, contact form, cookie banner — all reduce to five kinds of state, with working Micra code for each.
Read →June 26, 2026
Reactivity instead of updating the DOM by hand: the same tasks in plain JS and in Micra
The same UI tasks written twice — in plain JavaScript and in Micra — to find the point where tending the DOM by hand stops paying off.
Read →June 24, 2026
Micra + htmx: HTML over the wire, local state alongside
How htmx and Micra split the work — htmx delivers server-rendered HTML, Micra holds the client-only state on top — and the three-line bridge that ties them together.
Read →June 22, 2026
Why I built Micra
Why I built Micra — a small library for adding reactivity to server-rendered HTML, and what it deliberately leaves out
Read →June 15, 2026
Under the hood: how a reactive framework fits in 7 KB
A long read on Micra's internals — the shallow proxy, the microtask scheduler, the CSP-safe expression parser, and the keyed list diff
Read →June 14, 2026
Migrating from Alpine.js to Micra.js
Port a typical Alpine app to Micra — a syntax map, six conversion steps, and the gotchas you'll hit
Read →May 26, 2026
Common mistakes — and how to fix them
Eight anti-patterns that cause ~95% of Micra bugs, each with the shorter, correct rewrite
Read →