58 components and counting — press ctrl+K for the command palette

Isomorphic machin UI, agent-first.

Every component below was server-rendered for first paint, then hydrated by a machin WebAssembly client. Styles come from a pure-MFL Tailwind-compatible engine, differential-tested against the real thing.

GitHubmachinmachin-web-ui init my-app

Components

Every tile is live: SSR'd, hydrated, engine-styled.

Buttons + reactive counter

0

Tabs

A design system for isomorphic machin apps: SSR + reactive wasm in one language, one binary. Components are vendored source you own, shadcn-style.

Badges

neutralshippedbetabreakinginfo

Feedback

compiling wasm client…

Form


no-JS controls, styled via peer-checked

Alerts

Deployed

gallery is live: static export on GitHub Pages, zero moving pieces.

the stylesheet on this page was generated by the pure-MFL Tailwind engine.

Heads up

container queries and filters are not implemented yet — `coverage` tells the truth.

Build failed

unknown class detected: run `machin-web-ui check <class>` before shipping.

Stats

classes verified

3,613

rule-for-rule vs tailwindcss v3.4.17

engine speed

16 ms

vs 1,342 ms for the oracle

binary size

172 kB

vs 43 MB

Charts

sparkline · commits

bars · builds per day

motuwethfrsasu
91%tests
76%coverage

heatmap · 12 weeks

All charts are inline SVG generated in pure MFL — data-driven geometry lives in attributes, colors ride currentColor.

Agent UI

chat transcript

Ship the gallery to GitHub Pages.
Exporting the SSR page and wasm client, then pushing docs/.
$ ./export.sh
exported ../docs (66kB html + 1.4MB wasm)
Live. The E2E suite passes against production.

log stream

09:31:02infoscan: 41 source files, 312 classes
09:31:02okstylesheet: 3,613 rules, oracle-identical
09:31:03warnunknown class dropped: bg-blurple-500
09:31:04errorwasm export missing: data-action="nope"
09:31:05okdeploy: pages updated in 41s

diff

func handle(req) (res) {
-
    return ok_html(page)
+
    return ok_html(page())
}

Navigation

viewing page 2
  1. 1init
  2. 2build
  3. 3ship

Dates


custom month grid, range selection, pure-MFL date math
July 2026
motuwethfrsasu

2026-07-08 – 2026-07-14

Input extras

Verbosity40%
machinwasmtailwindagent-first

Primitives

mwaajbcfhover mectrl+K
Actions
What is this?
A click-toggled popover — native <details>, absolutely positioned panel, zero JS. Close by clicking the trigger again.

Install machin-web-ui and scaffold:

terminal
machin-web-ui init my-app
cd my-app && ./build.sh
./app

Structure

timeline

  1. day 1

    engine spike: 1,465 classes oracle-identical

  2. day 2

    scanner, coverage, init, 10 components

  3. day 3

    31 components, gallery on GitHub Pages

list group

tw engine16ms / 3,613 classes
wasm clienthydrates the SSR page
componentsvendored source you own

tree

my-app
src
models.srcserver.srcclient.src
components
button.srccalendar.src
build.sh

description list

status
live
engine
tailwindcss v3.4.17-compatible, pure MFL
hosting
GitHub Pages, static export
verified by
headless-Chrome E2E + a 3,613-class oracle diff

Accordion

Is this really Tailwind?+

The class names and emitted CSS are — every rule is differential-tested against the tailwindcss binary. The engine is 100% MFL.

Do I need Node?+

No. The engine, scanner, server and wasm client are one toolchain: machin + zig.

Who is this for?+

Agents. The binary answers list/coverage/check in JSON, and components are vendored source the agent can edit.

Empty state

No deployments yet

Scaffold an app and ship it — the whole loop is one binary and one command.

Table

appdomainstatus
machin-vaultbackupslive
grepapisearchlive
hartartifactsbeta

sortable (click a header)

crmdcrm4408
grepapisearch18455
hartartifacts912
machin-vaultbackups3120

Overlays

or press ctrl+K
built with machin-web-ui — SSR + wasm hydration + a Tailwind engine, all pure MFL