MMKV is the fastest option: a synchronous, memory-mapped key/value store on react-native-mmkv 4 (Nitro), behind the same src/lib/storage.ts. I'd pick it when you already need a dev build for something else (Unistyles, Sentry, RevenueCat…) and want stores and zustand persist to hydrate before first paint with no async fallback. Stay on kv-store if Expo Go matters, and choose async-storage only for a library that hard-requires it. Callers don't change either way: they import storage from @/lib/storage.
At a glance
- Runs in Expo Go
- No - needs a development build
- Files added
- 3
- npm packages
- 2
- Keys to paste
- None
- Included in
- Starter and Pro
Set it up
bun run setup --storage mmkvSetup copies the module in, installs SDK-matched versions and removes the options you did not pick. Then bun run doctor lists every key still missing, with a link to where you get it. The step-by-step guide is in the MMKV docs.
Other storage options
- expo-sqlite/kv-store - sync + async key/value on SQLite · Expo Go OK
- AsyncStorage - async-only key/value, the community standard · Expo Go OK
Get it
MMKV ships in Starter and Pro: one payment, lifetime updates. See pricing or browse every module.