Glossary

Jotai

Looking to learn more about Jotai, or hire top fractional experts in Jotai? Pangea is your resource for cutting-edge technology built to transform your business.
Hire top talent →
Start hiring with Pangea's industry-leading AI matching algorithm today
A Pangea Expert Glossary Entry
Written by John Tambunting
Updated Feb 24, 2026

What is Jotai?

Jotai is an atomic state management library for React built by Daishi Kato and the Poimandres open-source collective — the same team behind Zustand and React Three Fiber. The name means "state" in Japanese. Where most state management libraries ask you to organize everything in a single store, Jotai lets you define state as individual atoms that compose together: each atom holds one piece of state, derived atoms compute from other atoms, and React re-renders only the components subscribed to atoms that actually changed. No selectors, no memoization, no boilerplate. With roughly 2.7 million weekly npm downloads and over 20,800 GitHub stars as of early 2026, Jotai has become the default choice for React teams that lean heavily on derived state — dashboards, form-heavy applications, and real-time collaborative tools.

Key Takeaways

  • Atoms compose like spreadsheet cells — derived atoms automatically re-compute when their dependencies change, with no manual selector logic.
  • Jotai re-renders only the components subscribed to atoms that changed, eliminating the Context API's all-consumers-re-render problem without requiring manual memoization.
  • Persisted atoms (atomWithStorage) deserialize via JSON.parse with no type checking — production apps must add validation (e.g., Zod) to avoid silent data corruption from stale localStorage.
  • Recoil's decline after Meta deprioritized it has effectively made Jotai the only actively maintained atomic state library in the React ecosystem.
  • Companies rarely hire Jotai specialists; the skill appears bundled with React, TypeScript, TanStack Query, and Next.js in job postings.

The Atomic Model: How Jotai Thinks About State

The best way to understand Jotai's atom model is to think of a spreadsheet. A spreadsheet cell can hold a raw value, or it can reference other cells and automatically recompute when they change — and updating one cell cascades only through the cells that depend on it. Jotai works the same way. You define atoms as module-level constants: `const countAtom = atom(0)`. Derived atoms read from those: `const doubledAtom = atom((get) => get(countAtom) * 2)`. Components subscribe to whichever atoms they need via `useAtom`, `useAtomValue`, or `useSetAtom`, and React re-renders only those components when relevant atoms update. The dependency graph is maintained automatically via WeakMap under the hood, which also means atoms not subscribed to by any component get garbage-collected — a real advantage in large SPAs with many dynamic routes where abandoned state would otherwise linger.

Key Features

Jotai's power comes from a small API surface that scales further than it first appears. The atom() factory is the only primitive: give it an initial value for a writable atom, or a read function for a derived one. useAtom mirrors useState — returns `[value, setter]` — while useAtomValue and useSetAtom let components subscribe to only what they need. The official extension ecosystem covers the most common production needs: `atomWithQuery` integrates TanStack Query for server state, `atomWithStorage` persists to localStorage, `atomWithMachine` hooks into XState, and integrations exist for tRPC, Immer, URQL, and Relay. Provider scoping lets you isolate atom stores under subtrees — useful for design systems or multi-tenant UIs sharing the same atom definitions but needing separate state instances. Bundle size sits at approximately 3.3kb minified, versus Recoil's ~14kb.

Jotai vs Zustand vs Recoil

Zustand is the other Poimandres state library, and the teams themselves say you can use both — they solve different problems. Zustand is single-store and action-oriented: state mutations happen through defined store functions. Jotai is multi-atom and derived-first: state relationships are declared as a composition graph. If your app has lots of independent state slices with occasional mutations, reach for Zustand. If it has lots of computed values cascading from other values, Jotai is the better fit. Recoil invented the React atom model and still uses string keys for atom identity (enabling serialization). Jotai uses object references instead, which allows natural tree-shaking and garbage collection but makes SSR hydration more manual. Recoil's development slowed significantly after Meta deprioritized it; Jotai is now the actively maintained atomic option with real momentum. Redux Toolkit remains the right call for teams needing full action audit logs, time-travel debugging, or a mature middleware ecosystem. Jotai's DevTools story is thinner.

Production Gotchas Worth Knowing

Three issues trip up teams after adoption. First, SSR in Next.js App Router: Jotai atoms use object reference identity, so passing atom state from Server Components to Client Components is more manual than with TanStack Query's serializable HydrationBoundary — you need explicit Provider wrappers and careful initialization to avoid hydration mismatches. Second, React Fast Refresh has a documented bug where editing the logic of a read-only atom (defined outside the React tree) does not trigger hot module updates, requiring a full page reload during development. Third, the atomWithStorage persistence helper serializes via JSON.parse with no runtime type validation — if a user's localStorage holds stale data from an older schema, Jotai will silently load corrupt state. Adding a Zod schema as a parse option is the fix, but it's not the default. None of these are blockers; all have documented workarounds. But they show up in production before developers encounter them in tutorials.

Jotai in the Fractional Talent Context

Jotai almost never appears as a standalone hiring requirement. Job postings list it alongside React, TypeScript, TanStack Query, and Next.js — it's a stack qualifier that signals comfort with modern React patterns and fine-grained reactivity rather than a specialist credential. We see it most often in fractional engagements around dashboard rewrites, complex multi-step form applications, and Next.js App Router migrations from older class-component codebases. The atomic model's strength in those contexts — computed state without boilerplate, fine-grained subscriptions, clean code-splitting — makes Jotai a productivity multiplier for experienced React engineers. Fractional hires fluent in React hooks and TypeScript generics typically ramp up on Jotai within a day or two. The week-one gotcha is almost always the SSR/hydration story, so prior experience with Next.js App Router is the more valuable pre-hire signal.

The Bottom Line

Jotai has carved out a specific and defensible position in the React state management landscape: atomic, composition-first, and garbage-collected. It is not trying to replace Redux for audit-heavy enterprise apps, nor Zustand for action-oriented stores — it excels in derived-state-heavy UIs where computed relationships between state slices are the dominant complexity. For companies hiring through Pangea, Jotai expertise signals a React developer who understands fine-grained reactivity, TypeScript, and modern React architecture — someone who can ship complex UI logic cleanly without reaching for excessive boilerplate.

Jotai Frequently Asked Questions

Is Jotai free to use?

Yes. Jotai is fully open-source under the MIT license with no paid tiers, subscriptions, or commercial licensing requirements. It is maintained by the Poimandres open-source collective as community-driven software.

How does Jotai compare to Zustand?

Both are built by the Poimandres collective and are often used together. Zustand is single-store and action-oriented — mutations happen through store functions. Jotai is multi-atom and derived-first — state relationships are declared as a composition graph. Choose Zustand for apps where state mutations dominate. Choose Jotai for apps where computed state and fine-grained subscriptions dominate.

Does Jotai work well with Next.js App Router?

Jotai works with Next.js, but SSR requires care. Unlike TanStack Query's HydrationBoundary, Jotai atoms use object reference identity rather than serializable keys, so hydrating server-initialized atom state into client components requires explicit Provider wrappers. This is a solvable problem with documentation-backed patterns, but it's more manual than Recoil's string-key approach.

How long does it take a developer to learn Jotai?

Developers familiar with React hooks and TypeScript can be productive with Jotai within one to two days. The core API is three hooks plus the atom() factory. Conceptual ramp-up on the atomic mental model takes longer for developers coming from Redux, but engineers already comfortable with reactive programming or signals adapt almost immediately.

Is there demand for Jotai experience in the job market?

Demand is real but niche compared to Zustand or Redux. Jotai consistently appears in job postings alongside React, TypeScript, TanStack Query, and Next.js rather than as a standalone skill. Freelance roles involving Jotai tend to be dashboard rebuilds or App Router migrations. Candidates who list Jotai should also highlight React and TypeScript proficiency — that is the signal hiring managers are actually evaluating.
No items found.
No items found.