Offline as the default state

State persists because the app has to be useful before the network returns, not as a fallback bolted on afterward.

Read the code

The cheaper alternative

Fetch on mount and show a spinner until the network answers.

A write that lands while the network is down

What it would have cost

A dead application whenever the network is, in markets where that is most of the day.

What the decision bought

Persisted slices merged back into the reducers' initial state on boot, rather than replacing it.

Where it lives

This site's Redux store, and AES Connect

Next decision

Isolation at the database layer