Spokes.wiki Search About
Created
Updated
Also known as
Mitosis · JSX Lite
See also
ui-framework · design-system · svelte · react · astryx · shadcn-ui · builder-io

Mitosis

A compiler that writes your component in somebody else's framework. You author once in a static subset of JSX; Mitosis parses it to "a simple JSON structure" and runs serializers that emit native source for Angular, React, Qwik, Vue, Svelte, Solid and React Native, with Lit, Stencil and raw web components also available as outputs. MIT, TypeScript, by Builder.io. Tagline: "Write components once, compile to every framework."

14,055★ / 647 forks / 176 open issues / 94 watchers, created 2020-11-06, 1,909 commits, npm @builder.io/mitosis at v0.14.0 across 389 published versions. Read 2026-09-01 from the repository, the docs and the npm registry. T1 — the project's own repository and documentation.

A third answer to where the sharing stops

The spoke's two existing answers both share at runtime. flutter shares by owning the canvas: one widget tree, its own engine, every surface painted identically. compose-multiplatform in people-in-space shares per platform: one component model on four surfaces, hand-written SwiftUI on the fifth. Mitosis shares at build time and nowhere else — the output is ordinary React, ordinary Svelte, ordinary Angular, with no shared runtime, no adapter layer and nothing of Mitosis left in the artifact.

That reads as the logical end of the move svelte made. Svelte deleted the reconciler by deciding at compile time which DOM depends on which state; Mitosis keeps going and compiles not to DOM operations but to another framework's source code. On the spoke's who owns the pixels axis it is the first entry that owns none of them and never runs.

The cost of that position is one nobody in the corpus has priced yet: the shared thing is a static subset of JSX, so what can be written once is bounded by what all seven-plus targets can express. The docs name no per-target maturity — no stable/beta/alpha labels anywhere on the overview — so the question of whether an Angular output is as good as a React output has no answer here.

The argument against web components

Mitosis exists partly as a rejection of the standards-based answer to the same problem, and states three reasons for it:

  1. "Web components do not natively render on the server side."
  2. "Web components do not seamlessly integrate with your library or framework" — no native understanding of framework features such as React context.
  3. "Web components often come with their own rendering libraries and dependencies."

So: compile to native framework code rather than ship a neutral runtime. That is a design argument the spoke had not held from any source, and it is worth setting beside shadcn-ui, which solves a narrower version of the distribution problem by copying source into your repository instead of shipping a package. Both conclude that the thing you hand a developer should be their own code; they disagree about how many frameworks that has to be true in at once.

Design systems are the actual use case

The README's first listed use is "maintain a consistent design system across multiple frameworks," with a Figma integration that syncs a design system from Figma into code and publishes it to npm across frameworks. The linked real-world example is DB UX Design System (db-ux-design-system/core-web), Deutsche Bahn's design system.

That grounds design-system in a constraint this spoke had only stated abstractly: an organization large enough to standardize its UI is usually too large to have standardized its frameworks, so the design system has to exist several times over. Mitosis's answer is to generate the copies from one source rather than to staff them.

Maintenance: the vendor slowed and the consumer showed up

The commit history is the part that should be read carefully, because the marketing reads as a maintained product.

  • 11 commits in the three months to 2026-09-01, the last on 2026-07-21 — six weeks of silence at read time, on a repository with 1,909 commits behind it.
  • The top contributors are Builder.io's own: steve8708 (721), samijaber (487), then Dkendal (92) and mhevery (74) — the last of whom is also the creator of Qwik, one of the compile targets.
  • Four of the last five human commits are from mfranzke — Maximilian Franzke, "UX Engineering Lead @ DB UX Design System," and the top human contributor to db-ux-design-system/core-web with 2,673 commits there. A second Mitosis contributor, nmerget, is likewise in that project's top five.
  • The README asks openly: "We are actively looking for folks interested in becoming contributors."

So the recent maintenance of a 14k-star compiler is coming, in part, from the downstream design-system team that depends on it — the one the README cites as its example. Recorded as an observation, not a diagnosis: 11 commits is a small sample, a compiler that has reached the shape it needs may simply require little work, and nothing here says Builder.io has stepped back on purpose.

Standing caveats

  • Numbers are a 2026-09-01 snapshot.
  • No per-target maturity is published, so "compiles to every framework" is untested here for any particular target.
  • No benchmarks, no output-quality comparison — nothing measures the generated React against hand-written React.

ui-framework · design-system · svelte · react · shadcn-ui · astryx · builder-io · synthesis