Why offline-first

The subway problem

A dog walker is three blocks into a walk. The route drops into a subway entrance β€” no signal for ninety seconds. Every screen you've built so far assumes the network is there: WalkersView awaits fetchWalkers(), LiveTracker streams over a socket. What happens to the walker's app the moment the bars disappear?

If the answer is "it spins forever, or shows an error, or the last-known booking list just vanishes" β€” that's not a bug you patch with a retry button. It's a design the app was never built for. Offline-first means the app is designed around the network being unreliable from the start, not as an edge case bolted on later.