Build1 distinct publisher3 min readPublished
The compiler emits a bindings table for components whose structure it can prove and leaves everything else on normal React, so the checkable question is which of your hot components ended up in the fallback list.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Look at what the setter does after mount, because that is where the claim lives. Stock React re-runs the component function, builds a new element tree, diffs it against the old one, and commits the differences [4]. The compiled path instead walks the dependency graph: each binding that lists the mutated state cell in `dependencies` recomputes its `read` and writes the result into one text node or one attribute, with no render, no reconciliation and no commit phase [7]. The repo carries a runtime test that mounts the compiled and baseline versions side by side and asserts the compiled one updates with zero React renders [8]. A test that asserts a zero is easier to trust than a chart.
React still owns the first mount, and `render` is still emitted, so hydration, refs and devtools keep seeing an ordinary component [9]. That is the part I would defend at review. The fast path is an addition to a mounted React tree, and the fallback is the original component rather than a rewritten one [2].
The proof obligation is narrow. A component qualifies only when the compiler can establish one stable host element tree and a mapping from every supported state value to a known text or attribute target [10]. Props whose updates carry identity are excluded, which covers objects, arrays, functions and elements, as are `dangerouslySetInnerHTML` and setters called outside a JSX event handler [11]. The complete eligibility table sits in the docs, and reading it before the benchmark is the right order [23].
The one performance-adjacent number supplied is about bundle size. The author measures the runtime premium for direct-bindings-only output at 73.6% smaller than shipping the complete runtime [13], which leaves the minimal premium at 26.4% of the full runtime [14]. That is a floor for the narrowest output the compiler can emit, not a forecast for an application.
The post says it publishes benchmark numbers including the case where the optimisation does nothing [20], and the copy supplied to this desk stops mid-sentence before that table [21]. So here is what would have to be true for any such figure to move to your codebase. Your update traffic would have to be concentrated in components that clear the eligibility bar [10], and reconciliation would have to be the dominant cost of those updates rather than layout, data fetching, or a parent re-rendering above them. The second condition is the one benchmarks usually satisfy by construction and real pages usually do not.
You can at least interrogate your own tree cheaply. Fallback is silent by default, but diagnostics can be switched on, and the messages name the blocking feature, as in the `KeyedList` line stating that dynamic child structures require React reconciliation [16]. Enabling the whole thing is one experimental flag on the renderer [19], any component can be pulled back out with a `"use no compiler"` directive [18], and the framework runs in the browser through WebContainers if you want to poke at it before installing anything [22]. If your hot components land in the fallback list, the benchmark table is describing someone else's component tree.
Ranked by verification strength, evidence, and original report placement.
Farm.js is a full-stack framework with an experimental ahead-of-time compiler for React, with its repository on GitHub, described by its author in a dev.to post.
When the compiler can prove at build time exactly which DOM nodes a piece of state touches, it skips React's render cycle entirely for that update and writes to the DOM directly; when it cannot prove it, the component stays on normal React.
The approach requires no new mental model and no different component syntax.
On a click in stock React, the component function re-runs, a new element tree is built, diffed against the old one, and the differences are committed.
The compiled component definition contains initialize, render, and a bindings array; each binding states which state cell feeds which text node or attribute and how to compute the value.
Binding entries carry a kind ("text" or "attribute"), a path, a dependencies list, a read function, and for attributes a name.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 31, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
With CRA out of React's docs, the new project default is a rendering decision1 distinct publisher
build
A build-tool swap that took 70 days and 166 files, and the build was the easy part1 distinct publisher
build
A missing package.json line broke every pnpm user of a React dashboard template1 distinct publisher
build
The repo's own control run deleted the 5-10x WASM claim from vizcrush's launch copy1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Specific enough to check, checked by nobody
The post does something unusual for a framework announcement: it prints the code the compiler emits, names the exact fields of a binding, and hands you a report file that answers whether your component compiled. All of that is verifiable in principle. None of it has been verified here. Every mechanism claim, the zero-render assertion and both performance figures come from the same dev.to write-up by the person who wrote the compiler, and the 73.6% runtime saving arrives with no method attached at all.
Artifacts exist; users are not in evidence
There is a flag to enable, npm packages the benchmark runner installs, and a playground anyone can open — proof the code ships and runs, not proof that anyone runs it. No downloads, no third-party projects, no production use and no contributor signal appear anywhere in this reporting, so there is nothing to score rather than a low score.
Candid in the body, broad in the billing
This post gives away what a pitch usually buries: the row-label update that comes in at exactly 1.00x, the silent fallbacks, and a docs list of six code shapes that never compile. The overstatement is structural rather than numerical — 'compiles React components into direct DOM updates' reads as a property of React code generally, while effects, extra hooks, conditional returns, unkeyed lists and object props are excluded, which is most of what production components are made of. Small gap, and it lives in the headline, not the measurements.
Builder, benchmarker and sole witness are one person
The author wrote the compiler, wrote the benchmark, ran the benchmark, and published the only account of it, on a platform that rewards reach, with links to his repo, his docs and his hosted playground. He also built the check that makes the harness fail unless the report proves the workload actually compiled, which is the behaviour of someone trying not to fool himself. Both things are true at once, and no independent party has had a turn.
Sure what it does, unsure what it buys
We can describe the design with reasonable certainty because the emitted code and the eligibility rules are on the page. What it is worth in a real application we cannot say from here: one self-published source, self-run measurements, one figure with no method, and a copy of the text that breaks off mid-word during the framework tour — plus an earlier read of this story that had the benchmark section missing entirely.