Storage · On-device storage

Expo + MMKV

MMKV in an Expo SDK 57 app for iOS and Android, wired by one command and checked by doctor.

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 mmkv

Setup 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

OptionExpo Gonpm packagesKeys to pasteIncluded in
MMKVDev build20Starter and Pro
expo-sqlite/kv-storeYes10Free, Starter and Pro
AsyncStorageYes10Starter 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.