Field notes

The problems the field wrote down. Here’s how the Builder answers each one.

Practitioners, architects, and compliance leads documented the failure modes of config- and server-driven UI in public — talks, essays, and standards. We didn’t invent the positioning; we built the product that closes them. Each entry links the original and pairs it with what the Builder actually does.

We link every piece to its primary source and summarize the problem it raises in our own words — no reproduced text, and no implied endorsement. Authors who’d argue with our answer appear under The debate, marked as a debate, not a co-sign.

Claims last verified against their sources on 27 August 2026.

Constraint · the thin runtime02
Architecture

The Configuration Complexity Clock

by Mike Hadlow — mikehadlow.blogspot.com, 2012

The problem it documents

Configuration accretes rules until it becomes a programming language — “a much crappier” one, with no types, tests, or debugger. The canonical ancestor of “no logic in JSON.”

How the Builder answers it

The Builder emits a thin contract with zero logic and zero eval. It describes the screen; real behavior stays in typed, testable React. The clock never starts.

Performance

The Performance Inequality Gap

by Alex Russell — Infrequently Noted

The problem it documents

Every kilobyte of framework and runtime you ship to the client is a regressive tax paid by the slowest devices and networks. The JavaScript you send is a cost your users bear — not you.

How the Builder answers it

A thin runtime maps the contract onto native components — a minimal client payload, no interpreter to ship. You send structure, not a framework.

One contract, any design system01
Cross-platform

Transitioning to server-driven UI

by Philip Bao — The Craft, Faire engineering, 2025

The problem it documents

Building the UI separately on web, iOS, and Android let the surfaces drift out of sync — a disjointed experience and duplicated work on every change. Faire’s fix was one governed schema-as-contract, aligned to their design system, that every client renders the same way.

How the Builder answers it

One contract, rendered by a thin runtime against your design system — Tailwind or MUI — so every surface stays in sync from a single source of truth, with no per-client reimplementation.

The hidden costs of server-driven UI02
SDUI risk

The challenges of server-driven UI on Android

by Georgi Mirchev — georgimirchev.com

The problem it documents

Server-driven UI tightens backend–frontend coupling and pushes hard questions — where state, validation, and business logic actually live — into an awkward split between server and client.

How the Builder answers it

The contract is structure only; state and logic live in reviewed, typed code on the client — a clean seam, not a tug-of-war over the payload.

SDUI risk

The Server-Driven UI Dilemma

by Pankaj Rai — Medium, 2024

The problem it documents

SDUI’s “siren call” comes with a hidden bill: debugging becomes painful and you lose your native tooling — Layout Inspector, Compose previews — the moment the screen is defined server-side.

How the Builder answers it

The runtime renders real, typed components — so your inspector, previews, and tests keep working. The screen stays debuggable with the tools you already use.

Own it · anti-lock-in · self-host02
Ownership

RIP Low-Code 2014–2025

by Zack Liscio — zackliscio.com, 2026

The problem it documents

Teams are migrating off hosted low-code builders to own their tooling outright — running it against their real codebase instead of a vendor’s runtime.

How the Builder answers it

The Builder exports portable JSON you keep, run by an OSS self-hosted runtime. Owning it is the default, not a migration project.

Self-host

FOMO? YAMO.

by Kailash Nadh — CTO, Zerodha (nadh.in), 2022

The problem it documents

Zerodha’s standing aversion to SaaS dependencies — self-hosting open source wherever possible — is what preserves the freedom to swap tools and avoid being locked in by a vendor whose plug you don’t control.

How the Builder answers it

Self-host the whole thing — the contract and the runtime are yours, open source, with no third-party SaaS in the path. Nothing whose terms can change under you.

Compliance · audit ⚑ regulated01
Compliance · ⚑ regulated

PCI DSS 4.0 §6.4.3 / §11.6.1 — payment-page scripts

as framed by John Elliott — PCI DSS v4 contributor

The problem it documents

Every script on a payment page must be inventoried, justified, and tamper-monitored (mandatory since March 2025). A UI payload that can change without your deploy is a standing audit finding.

How the Builder answers it

The Builder produces a no-eval, inventoried, self-hosted payload your scanner can verify — “prove this screen behaves” becomes a diff, not “trust us.”

The debate — voices we answer, not endorsements01
Counter-positionDebate

Playing in the Treehouse with Redwood and Zipline

by Jake Wharton & Jesse Wilson — Cash App, KotlinConf 2023

Their position

A real counter-position, and we state it as theirs, not ours: Redwood ships composable Kotlin so behaviour can change “without waiting for users to update their apps” — dynamic code delivered safely, rather than a static contract. They do not frame it as an argument about JSON; we are the ones drawing that contrast.

Where we stand

In a regulated, auditable context, arbitrary shipped code is the liability. We trade dynamism for provability — and say so plainly. An open debate, not a co-sign.

The pattern holds

Different authors. The same failure modes. The Builder was designed around them.