Rebar UI

1.0

Published 2026-09-14 · updated 2026-09-25 — part of an ongoing build diary of dated, real measurements, not a one-time proof of the platform's superiority.

Does iteration change the winner?

Everything measured elsewhere on this site is one build. The real question a single build can't answer: once realistic follow-up work (add a field, reorder content, add a note, change an option) is layered on round after round, does antd's head start survive, or does rebar-ui's pay-once-at-migration cost structure eventually overtake it? Rather than stop at an arbitrary round count, each tier was iterated until it actually crossed over — a measured answer, not an extrapolation. Run 2026-08-30 against rebar-ui v0.1.0.

Condition A — antd direct. Build the UI against Ant Design components, then apply one follow-up prompt per round, repeated until crossover.

Condition B — rebar-ui, then migrate once. Build the same UI headless with rebar-ui, apply the identical follow-up prompts, then reimplement it directly in antd once at the end (the migration step — see below for why this isn't a codemod run here).

  • Simple — A settings form — a handful of fields, one submit action.
  • Composite — A list view with filters, a modal, and inline validation.
  • Complex — A multi-step wizard: table + form + confirmation dialog + tabs.

Cumulative marginal cost per round (Claude, harness-subtracted)

"rebar-ui + migration" adds the one-time migration cost to round 0, so the two lines are comparable at every round, not just at the end. Green marker = the round where rebar-ui + migration first becomes cheaper than antd.

Complex — crosses over at round 13

037,19174,382111,572148,763R0R2R4R6R8R10R12R13crossoverantdrebar-ui + migration

Composite — crosses over at round 14

038,41976,838115,257153,676R0R2R4R6R8R10R12R14crossoverantdrebar-ui + migration

Simple — crosses over at round 17

045,10290,205135,307180,409R0R2R4R6R8R10R12R14R16R17crossoverantdrebar-ui + migration
All three tiers cross over — between round 13 and round 17
Complex crosses first (round 13: antd 138,439 vs rebar-ui+migration 137,756), Composite next (round 14: 142,981 vs 142,584), Simple last (round 17: 167,673 vs 166,797). The more complex the spec, the sooner migration pays for itself — consistent with rebar-ui's per-round saving being roughly proportional to how much content a round touches, while the one-time migration cost only grows sub-linearly with complexity. Not a smooth countdown: round 15 on the Simple tier briefly widened the gap instead of closing it (a single round's real cost swung the other way that time) before resuming its close — a visible reminder that any one round is still an n=1 measurement, even though the multi-round trend across three independently-run tiers is consistent.

Final state (post-crossover), one representative build per condition

Caveats: n=1 per round per condition (97 dispatches total across all three tiers) — a single round's number can swing (see round 15's temporary reversal above), so the exact crossover round for any tier could land a little earlier or later on a repeat. Migration here is a full LLM rewrite to equivalent antd code, not a partial codemod pass, so it's a real, fully-counted cost, not an underestimate. Every final state typechecked and was Playwright-verified.

A structural head start worth naming: models haven't been trained on rebar-ui
Every number measured on this site compares a library the model has seen constantly in training (antd) against one it has never seen at all (rebar-ui, and the @rebar-ui/placement schema specifically). That's not a flaw in the comparison — reaching for a small, complete unit needs far less training familiarity to use well than assembling one from a large component API does, which is a real advantage of the tier system independent of training exposure. But it does mean today's numbers likely understate rebar-ui's ceiling, not overstate it — the image-prompt experiment shows a real, measurable "unfamiliar schema" tax (extra lookup calls before the prompt was refined to spell the schema out directly). If a future model were actually trained on examples of this schema, that residual tax would plausibly shrink further, on top of the advantage already measured here — a directional expectation, not something this page has tested.