unstale

npm / jotai

jotai

What changed in jotai 2 to 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

5 breaking4 deprecations2 performance1 behavior and defaults14 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

jotai 33 changes

Breaking changes 1

  • Node 20 support is dropped in v3, so developers may need to use a newer Node.js version.

    3.0.0release notes

Fixes and other changes 2

  • The store type is now exported for developers who need to reference it in type-level code.

    3.0.1release notes

  • Synchronous onMount updates are now delivered to React subscribers, fixing a regression introduced in v3.0.0.

    3.0.1release notes

jotai 223 changes

Breaking changes 4

  • Performance improves in high-throughput scenarios.

    2.20.0release notes

  • The Babel preset and plugin moved to jotai-babel, so update configured package paths.

    2.18.0release notes

  • unstable_onInit was removed as a breaking change.

    2.17.0release notes

  • The API was renamed to INTERNAL_onInit.

    2.16.0release notes

Deprecations 4

  • The React delay option is deprecated.

    2.19.0release notes

  • The loadable utility is deprecated and will be dropped in v3.

    2.17.0release notes

  • setSelf in the atom read function is deprecated and will be dropped in v3.

    2.17.0release notes

  • atomFamily in jotai/utils is deprecated; migrate to jotai-family.

    2.16.0release notes

Performance 2

  • Core atom caching was enabled to improve performance in some cases.

    2.19.0release notes

  • store.get performance improved when atoms are not mutated.

    2.19.0release notes

Behavior and default changes 1

  • Development builds now warn when unsupported store mutations or side effects are detected.

    2.15.2release notes

Fixes and other changes 12

  • Prevents an infinite microtask loop when a rejected source is recomputed.

    2.20.3release notes

  • Fixes subscribers not being notified after nested store.set and sub/unsub operations inside a write.

    2.20.2release notes

  • Applies the reviver when parsing subscription updates from storage.

    2.20.1release notes

  • Stackoverflow errors are now thrown synchronously.

    2.20.1release notes

  • Uses a symbol index signature to avoid a Symbol.observable type reference.

    2.19.1release notes

  • ObservableLike now supports the Symbol.observable type.

    2.18.1release notes

  • Subscribers are notified when a derived read calls store.set, fixing a regression from v2.12.1.

    2.18.1release notes

  • Reactivity is preserved when get is called in a different atom.

    2.18.0release notes

  • Corrected the variance of the WritableAtom Result type parameter, improving TypeScript typing behavior.

    2.17.1release notes

  • Fixed a regression so unwrap no longer violates the store mutation rule.

    2.16.2release notes

  • Buildingblocks no longer invoke buildingblock definitions from top-scope, fixing an internal API issue affecting ecosystem libraries.

    2.16.1release notes

  • unwrap now recovers from errors.

    2.15.1release notes