# System map — pmndrs/jotai

> Canonical page: https://codevetter.com/unpack/jotai/system-map

# System map — pmndrs/jotai

Scanned commit 6abd0ae3365e02ab432fba4b6e8e6f00aafbf508 (2026-09-29). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The repository separates the vanilla dependency engine from its React adapter and utility modules. The published artifact is an ESM library, while the website and examples are separate applications with their own dependencies. Storage is in memory unless a utility connects an atom to an external adapter. Build and release behavior is defined by package scripts and GitHub Actions.
- src/index.ts re-exports the vanilla and React APIs; separate barrels expose atom/store primitives and Provider/hooks, including the v3 raw-value hooks. — [src/index.ts#L1-L2](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/index.ts#L1-L2) [src/vanilla.ts#L1-L19](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla.ts#L1-L19) [src/react.ts#L1-L8](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/react.ts#L1-L8)
- package.json defines seven library entrypoints, publishes only dist, declares sideEffects:false, and provides TypeScript declarations only for >=5.5; React >=18 is an optional peer. — [package.json#L20-L61](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/package.json#L20-L61) [package.json#L137-L147](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/package.json#L137-L147)
- atom() creates configuration objects with read/write functions and optional init values; createStore() delegates to INTERNAL_buildStoreRev4 unless overridden. — [src/vanilla/atom.ts#L98-L139](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/atom.ts#L98-L139) [src/vanilla/store.ts#L4-L19](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/store.ts#L4-L19)
- buildStore owns per-store weak maps for atom state, mounting, and invalidation, sets for changes and lifecycle callbacks, and a store epoch holder; its public surface is get/set/sub. — [src/vanilla/internals.ts#L1209-L1258](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/internals.ts#L1209-L1258)
- Provider supplies either an explicit store or a lazily created store retained in useRef; useStore selects options.store, then context, then the module's default store. — [src/react/Provider.ts#L18-L48](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/react/Provider.ts#L18-L48) [src/vanilla/store.ts#L21-L40](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/store.ts#L21-L40)
- The root build emits src into dist through tsc --noCheck; type checking is a separate test:types script. Compilation uses strict NodeNext modules and an ES2020 target. — [package.json#L62-L78](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/package.json#L62-L78) [tsconfig.json#L2-L23](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/tsconfig.json#L2-L23) [tsconfig.build.json#L1-L10](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/tsconfig.build.json#L1-L10)
- The Gatsby website sources ../docs as MDX, indexes documents through Algolia, and has Vercel function configuration for api/*.js; the Hacker News example independently uses Vite and React. — [website/gatsby-config.js#L99-L123](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/website/gatsby-config.js#L99-L123) [website/vercel.json#L1-L7](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/website/vercel.json#L1-L7) [website/package.json#L12-L42](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/website/package.json#L12-L42) [examples/hacker_news/package.json#L6-L23](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/examples/hacker_news/package.json#L6-L23)
- Publishing runs on published GitHub releases and builds before pnpm publish; preview releases build and invoke pkg-pr-new with example templates. The pnpm workspace contains the root and website. — [.github/workflows/publish.yml#L3-L28](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/.github/workflows/publish.yml#L3-L28) [.github/workflows/preview-release.yml#L19-L29](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/.github/workflows/preview-release.yml#L19-L29) [pnpm-workspace.yaml#L1-L4](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/pnpm-workspace.yaml#L1-L4)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
