Define what remains useful offline: capture, journaling, local inference, drafts, and queued actions. Make connectivity state visible without blocking the entire product.
Store operations with stable identifiers, synchronize idempotently, and resolve conflicts explicitly. Never imply a cloud-backed answer is current when it came from stale local data. Offline-first design is product honesty supported by careful state management.