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.
When to pick MMKV
MMKV: The fastest, memory-mapped and fully synchronous. Needs a dev build.
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
- Tests included
- 1
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.
Wiring it by hand instead? Read the guide: AsyncStorage vs MMKV vs expo-sqlite/kv-store.
MMKV vs other storage options
| Option | Expo Go | npm packages | Keys to paste | Included in |
|---|---|---|---|---|
| MMKV | Dev build | 2 | 0 | Starter and Pro |
| expo-sqlite/kv-store | Yes | 1 | 0 | Free, Starter and Pro |
| AsyncStorage | Yes | 1 | 0 | Starter and Pro |
Questions
Can I use MMKV in Expo Go?
No. This module needs a development build: npx expo run:ios or npx expo run:android locally, or eas build --profile development in the cloud.
What do I need to set up MMKV in an Expo app?
Only bun run setup --storage mmkv. There are no API keys to paste; bun run doctor checks the result.
Does the ReadyNative free tier include MMKV?
No. It ships in Starter and Pro (one payment, lifetime updates); the free tier uses expo-sqlite/kv-store for storage.
MMKV or expo-sqlite/kv-store for Expo?
MMKV: The fastest, memory-mapped and fully synchronous. Needs a dev build. expo-sqlite/kv-store: The default (expo-sqlite/kv-store). Expo Go and sync reads on native, so stores hydrate before first paint.
MMKV or AsyncStorage for Expo?
MMKV: The fastest, memory-mapped and fully synchronous. Needs a dev build. AsyncStorage: Pick it when a library hard-requires AsyncStorage. Async only.
Which MMKV version does it install?
For Expo SDK 57: react-native-mmkv ^4.3.2, react-native-nitro-modules 0.37.1. Setup installs Expo packages with expo install, so they match the SDK.
Get it
MMKV ships in Starter and Pro: one payment, lifetime updates. See pricing or browse every module.