The most useful pattern I know of for offline web apps is the command queue. Basically, the rendered state of the client is the acknowledged server state plus the client-side command queue. User actions don't make a server request and then update the UI. Instead they directly append to the local command queue, which updates the UI state, and right away the client begins communicating with the server to make the local…
Do you mean like CQRS/ES?
In our case, we weren't using an event sourcing architecture, but this client side pattern can be used anyway.