Not only when being offline, but especially when using an intermittent, slow, or otherwise bad connection, the app still works and behaves nicely.
The Web client will check every message for actually having arrived in a channel and render the state of that nicely in the UI. If a message couldn't be sent, it offers a button to re-try sending it.
The app is delivered with an Appcache manifest in production, so that its code and assets are cached in the Web runtime, not only making start-up extremely fast, but also enabling starting the app while being offline and e.g. checking the logs of the last day or so.