From MMKV queues to reactive SQLite β what I learned engineering a production offline-first architecture that handles any scenario β‘ TL;DR The MMKV + TanStack Query pattern is a perfectly valid offline strategy β until you need relational queries, conflict resolution, or reactive UI updates on local data WatermelonDB on Expo SDK 54 (new arch mandatory, React 19) requires the community Expo plugin, peer dependency overrides, and specific native patches β the official docs alone will not get you there PowerSync and ElectricSQL + TanStack DB are serious alternatives with different tradeoff profiles β this guide compares all three from a full-stack perspective Every config file ( app.plugin.js , eas.json , Podfile patches) is included with exact version numbers β no "left as an exercise for the reader" Full working demo repo: github.com/FastheDeveloper/watermelondb-expo-offline-demo π οΈ Prerequisites Before diving in, make sure you have: Node.js 20+ (LTS) Expo CLI ( npx expo β no global install needed) EAS CLI (β¦