Overview
Jotai is a React state-management library that models state as small atoms subscribed to only where needed. Primitive, derived, asynchronous, and write-only atoms share the same compositional model.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Read and write primitive atoms through useAtom
Create a state unit with atom(0) and use useAtom to access its current value and setter from React components.
Express derived and asynchronous relationships between atoms
Derived atoms read other atoms through get, while async atoms can return promises and integrate asynchronous state into the same graph.
For splitting React application state into small reusable units
It fits applications that prefer feature-level state units and fine-grained subscriptions over a single monolithic global store.
Sources: [2]
Check the v3 runtime and TypeScript requirements
The current package requires Node.js 22.12+, React 18+, and type definitions intended for TypeScript 5.5+.
Sources: [4]
Official sources
- [1]pmndrs/jotai repository(2026-09-21)
- [2]Jotai README(2026-09-21)
- [3]Jotai documentation(2026-09-21)
- [4]jotai package(2026-09-21)
- [5]Jotai MIT license(2026-09-21)
Supplemental curator note
Jotai is currently 3.0.0. The package peers on React 18+ and its type definitions are structured around TypeScript 5.5+, while the Node engine requires 22.12.0+. The model favors small independently subscribed atoms and derived relationships instead of one large global state object.
Try it in 3 steps
- 1
Install Jotai
Add Jotai to a React project using the minimal README installation path.
npm i jotai - 2
Create a primitive atom
Define a small independent unit of application state.
const countAtom = atom(0) - 3
Use the atom from a component
Subscribe from a component and update the atom through its setter.
const [count, setCount] = useAtom(countAtom)
Growth
Growth trends · Last 30 days
21,275 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 6
- Open PRs
- 1
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- react
- state
- management
- atomic
- hacktoberfest
- Stars
- 21,275
- Forks
- 725
- Watchers
- 68
- Open issues
- 1
- Contributors
- 240
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Sep 17, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Redux61,490 Stars
3 shared tag(s) · 2 shared category(s) · Same language
A JavaScript/TypeScript state-management library that centralizes application state in a store and updates it predictably through actions and reducers. Redux Toolkit is the officially recommended approach today.
TypeScript - Expo52,361 Stars
2 shared tag(s) · 2 shared category(s) · Same language
A universal React Native framework for building Android, iOS, and web apps from one project model.
TypeScript - tldraw50,488 Stars
2 shared tag(s) · 2 shared category(s) · Same language
A React infinite-canvas SDK extensible with custom shapes, multiplayer collaboration, and AI workflows.
TypeScript - TanStack Query50,342 Stars
2 shared tag(s) · 2 shared category(s) · Same language
An async data-management library for fetching, caching, refetching, and updating server state across React, Vue, Solid, Svelte, and other web frameworks.
TypeScript - React Hook Form44,868 Stars
2 shared tag(s) · 2 shared category(s) · Same language
A React forms library that manages input state, validation, errors, and submission through hooks while preserving native form behavior and reducing rerenders.
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.