
Million.js
An optimizing compiler that speeds up React components by skipping most of React's diffing work.aidenybai/million
- Stars
- 17.7k
- Forks
- 591
- Licence
- MIT
- Language
- TypeScript
- Last update
- 6 months ago
- Type
- Library
What it is
Million.js is a compiler for React that aims to make components update faster. Instead of React comparing old and new snapshots of the interface to find changes, the README says Million.js generates code that updates the affected DOM nodes directly. The project claims components can be up to 70% faster, citing an external benchmark.
- Speeding up a React interface that re-renders many list items or elements
- Running the Million.js CLI to set up an existing React project
- Comparing update performance before and after enabling the compiler
Great for
- React developers whose apps have many elements that update often
- Teams looking for a performance boost without rewriting their components
- Developers who want to experiment with compiler-based optimizations
Not ideal for
- Projects not using React, since the README describes Million.js as working with React
- Beginners who just want to build a simple site, because the setup and internals add complexity
- Teams that need a fully verified performance gain, since the 70% figure comes from the project's own benchmark link and the README does not detail the conditions
How to get it
- 1
Install with a package manager
You'll need: Node.js · A React project
Run the Million.js CLI to install and configure your project
npx million@latest - 2
Run it
- Run the CLI command in your React project folder
- Start your project as you normally would
- Check the command line for Million.js output, as the README says information should appear there
- 3
Get the most out of it
- Follow the installation guide linked from the README if the CLI setup fails
- Read the Virtual DOM blog post linked in the README to understand the internals
- Use the benchmark and demo links to test performance on your own components
Downloads
Strengths
- Clear core idea: skip diffing and update the DOM node directly
- Installs through a single CLI command according to the README
- Open source under the MIT license with an active CI badge and npm package
Trade-offs
- Performance claims rely on the project's benchmark and demo; results in your app may differ
- The README is truncated and the setup details point to external docs
- Its approach is a compiler layer on top of React, which adds another build-time component to understand
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| million (this) | 17.7k | Library | intermediate | 6 months ago | React developers whose apps have many elements that update often |
| preact | 39k | Library | intermediate | 4 days ago | Web developers who already know React and want a lighter library |
| solid | 36.2k | Library | intermediate | 4 days ago | Developers who want fine-grained control over what re-renders in a web UI |
| react-hook-form | 44.9k | Library | intermediate | 5 days ago | React developers building forms with several fields |
| react-virtualized | 27.1k | Library | intermediate | 5 days ago | React developers who need to display long lists of items |
| inferno | 16.5k | Library | intermediate | 6 days ago | Developers already familiar with React who want a React-like API |
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.