Skip to content

Million.js vs useHooks

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

Million.js

Open source · MIT

An optimizing compiler that speeds up React components by skipping most of React's diffing work.

useHooks

Open source · MIT

A set of ready-made React hooks for common UI and browser tasks, built to be safe on the server.

The short answer

Choose Million.js if you need…

  • 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

Choose useHooks if you need…

  • React developers who want ready-made hooks for common browser tasks
  • Teams building apps with React v18.0.0 or newer
  • Developers who want to learn from a documented set of hook implementations
  • Projects that need server-safe hooks for server-rendered React

Side-by-side

Million.jsuseHooks
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars17.7k11.5k
Setup difficultyIntermediateBeginner
How you get itInstall with a package managerInstall with a package manager
Main languageTypeScriptMDX
Last code update6 months ago18 months ago

What each one is

Million.js

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.

useHooks

useHooks is an npm package of reusable React hooks, small functions that add common behavior to React components, such as tracking window size, debouncing input, or storing values in local storage. It is published by the ui.dev team and is described as server-safe, meaning its hooks are meant to work when React renders on a server. Developers use it to avoid writing these common pieces from scratch.

Best for

Million.js

  • 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

useHooks

  • React developers who want ready-made hooks for common browser tasks
  • Teams building apps with React v18.0.0 or newer
  • Developers who want to learn from a documented set of hook implementations
  • Projects that need server-safe hooks for server-rendered React

Strengths

Million.js

  • 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

useHooks

  • Covers many common browser and UI needs in one package
  • Documented hook by hook on the project website
  • Explicitly designed to be server-safe and is MIT licensed

Not ideal for

Million.js

  • 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

useHooks

  • Developers not using React, since every hook is written for React
  • Projects on React versions older than v18.0.0, which the README says is the compatibility floor
  • Teams that need the experimental hooks in production, since they are installed from a separate experimental tag and may change

Trade-offs

Million.js

  • 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

useHooks

  • The README is short and does not explain each hook's API, so details are on the linked per-hook pages
  • Experimental hooks require installing pre-release versions of React, which adds risk
  • Maintenance activity is not fully clear from the README alone; the last push date is May 2025

Getting started

Million.js

Run the Million.js CLI to install and configure your project

npx million@latest
Step-by-step guide: how to use Million.js

useHooks

Install the standard hooks

npm i @uidotdev/usehooks

Install the experimental hooks (pre-release React)

npm i @uidotdev/usehooks@experimental react@experimental react-dom@experimental
Step-by-step guide: how to use useHooks

Frequently asked questions

What is the difference between Million.js and useHooks?

Million.js: An optimizing compiler that speeds up React components by skipping most of React's diffing work. useHooks: A set of ready-made React hooks for common UI and browser tasks, built to be safe on the server. Million.js suits react developers whose apps have many elements that update often, while useHooks suits react developers who want ready-made hooks for common browser tasks.

Are Million.js and useHooks free?

Million.js: Free and open source. useHooks: Free and open source.

Which is easier to set up, Million.js or useHooks?

useHooks is easier to get started with (rated beginner); Million.js is rated intermediate and usually needs more setup.

Is Million.js or useHooks more popular?

Million.js has more GitHub stars (17.7k) than useHooks (11.5k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to Million.js and useHooks?

Other options people compare them with include Preact, Solid, ahooks, react-virtualized, Inferno.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.