
Mitosis
Write UI components once in a JSX-like syntax and compile them to many frameworks.
- Stars
- 14.5k
- Forks
- 679
- Licence
- MIT
- Language
- TypeScript
- Last update
- 8 days ago
- Type
- Dev tool
What it is
Mitosis is a TypeScript-based compiler that lets you write component code once in a JSX-style syntax and output it for several frameworks, such as React, Vue, Qwik, Solid, Angular, and Svelte. Teams use it to avoid maintaining the same component separately for each framework. The README provided here is truncated, so details beyond the project description and topics are limited.
- Write a button or form component once and output versions for React and Vue
- Share UI components between a React app and a Svelte or Solid app
- Generate framework-specific packages from one shared component source
Great for
- Teams maintaining the same UI components across more than one framework
- Library authors who want to publish components for several frameworks
- Developers already comfortable with JSX and TypeScript
- Projects that want to experiment with framework-agnostic component code
Not ideal for
- Projects using a single framework with no plans to change, since the compile step adds overhead without a clear benefit
- Beginners new to web development, who will do better learning one framework first
- Teams needing full support for every framework feature, because compiled output may not match hand-written code exactly
How to get it
- 1
Install with a package manager
You'll need: Node.js
Clone the repository
git clone https://github.com/BuilderIO/mitosis - 2
Run it
- Clone the repository or install the package from npm
- Read the README for the current setup steps
- Write a small component in Mitosis syntax
- Run the compiler to generate output for your target framework
- 3
Get the most out of it
- Start with one target framework and add others once the first works
- Check the project's docs at mitosis.builder.io for current guidance
Downloads
Strengths
- Single source for components across multiple frameworks
- Open source under the MIT license
- Built in TypeScript with an active project history (about 14,000 GitHub stars)
Trade-offs
- README was truncated, so the full feature list and limits could not be verified here
- Output quality and framework feature coverage may vary by target
- Adds a build step and a new syntax to learn on top of your framework
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| mitosis (this) | 14.5k | Dev tool | intermediate | 8 days ago | Teams maintaining the same UI components across more than one framework |
| svelte | 88.5k | Library | intermediate | 4 days ago | Developers who want to build interactive websites with less boilerplate |
| vue | 212k | Library | intermediate | 2.1 years ago | Maintaining an existing Vue 2 application that cannot yet be upgraded |
| solid | 36.2k | Library | intermediate | 4 days ago | Developers who want fine-grained control over what re-renders in a web UI |
| storybook | 91.4k | Dev tool | intermediate | 4 days ago | Frontend teams building a shared component library or design system |
| prettier | 52.4k | Dev tool | beginner | 4 days ago | Teams that want one shared code style without writing their own rules |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.