zustand is by pmndrs β not by us.
We indexed this project so people can find it. We are not selling it, we host no copy of the code, and we are not affiliated with or endorsed by its authors β get it from them.
Indexed Aug 3, 2026 Β· 58,517 stars at index time. Maintainers: claiming verifies your identity and unlocks a higher assurance tier. Removal requests are honored.
Application Β· for humans & their agents
zustand
unclaimed listingactively maintainedFreeMIT
π» Bear necessities for state management in React
by Open Source Community Β· New publisher
Every claim on this page is refundable if it is untrue β refund policy.
pmndrs/zustand is an open-source project by pmndrs: π» Bear necessities for state management in React. Indexed here so it can be found β not resold.
It is free. Get it from the upstream repository: https://github.com/pmndrs/zustand
From the project's own README (excerpt, reproduced for discovery under its MIT license):
A small, fast and scalable bearbones state-management solution using simplified flux principles. Has a comfy API based on hooks, isn't boilerplatey or opinionated.
Don't disregard it because it's cute. It has quite the claws, lots of time was spent dealing with common pitfalls, like the dreaded zombie child problem, react concurrency, and context loss between mixed renderers. It may be the one state-manager in the React space that gets all of these right.
You can try a live demo and read the docs.
This readme is written for JavaScript users. If you are a TypeScript user, be sure to check out our TypeScript Usage section.
First create a store
Your store is a hook! You can put anything in it: primitives, objects, functions. State has to be updated immutably and the set function merges state to help it.
Then bind your components, and that's it!
Use the hook anywhere, no providers are needed. Select your state and the component will re-render on changes.
Why zustand over redux? β’ Simple and un-opinionated β’ Makes hooks the primary means of consuming state β’ Doesn't wrap your app in context providers β’ Can inform components transiently (without causing render)
Why zustand over context? β’ Less boilerplate β’ Renders components only on changes β’ Centralized, action-based state management
---
Recipes
Fetching everything
You can, but bear in mind that it will cause the component to update on every state change!
Selecting multiple state slices
It detects changes with strict-equality (old === new) by default, this is efficient for atomic state picks.
If you want to construct a single object with multiple state-picks inside, similar to redux's mapStateToProps, you can use useShallow to prevent unnecessary rerenders when the selector output does notβ¦
Preview
See what it does before you commit. Previews show behavior, never source code.
01Capabilities
Does
- + Developer tooling
Doesnβt
- No exclusions declared
02Requirements & stack
Depends on
No declared dependencies
Credentials needed
None declared
Stack
03Community
No endorsements yetNo verified confirmations yet β be the first.
Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality β security is verified separately, and community votes can never override the security gate.
Sign in to confirm β weight comes from verified usage, not vote count.
Issues 0
Open an issueNobody has reported anything yet β a success counts as a report too.
04Trust Passport
Full passport β0/0 automated components pass. An automated score is never a security guarantee.
This listing is unclaimed, so publisher identity cannot be verified and it stays below the βverifiedβ tier by design β that is a statement about the listing, not about the projectβs quality. Our automated scans still ran; a maintainer who claims it unlocks identity verification.
- publisher identity Publisher status verified; 0 verification(s) on file
- malicious pattern scan No known malicious-behavior patterns across listing text only β no source artifact published
- capability contract All 0 observed capability reference(s) match the declared manifest
- agent safety scan No injection patterns in agent-readable content
- provenance No release signature or provenance attestation
- behavioral sandbox Not performed in this environment β requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.
Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked β it is not a guarantee that the software is safe.
05Versions
Full history β| Version | Channel | Released | Notes |
|---|---|---|---|
| 0.0.0 | stable | Aug 3, 2026 | Indexed listing β see the upstream repository for real release history. |