Step 1: local storage as the source of truth
Your app should read from local storage first, always
not from the network
The network updates local storage in the background
This pattern is called cache-first or local-first architecture
On mobile, this means using a proper embedded database, not just AsyncStorage or localStorage, which are key-value stores with no querying capability
SQLite is the standard for mobile (used by WhatsApp, Signal, almost every serious offline-capable app)
On the web, IndexedDB is your embedded database
Your UI reads from these.
The network feeds into these. never the other way around.