I don&#x27;t understand this obsession with offline support for collaborative realtime apps. There is an idea going around that you can magically sync everything using the same algorithm.<p>Accurate offline collaboration is impossible without some form of user-assisted conflict resolution - The core problem is that automatic sync algorithms cannot capture the collaborative intent of users.<p>For example, assume that you have a list of items and two users are interacting with this list while offline. Let&#x27;s say that one user called &#x27;John&#x27; coincidentally deletes all items which start with the letter &#x27;A&#x27; but, while also offline, the other user &#x27;Steve&#x27; renames one of those &#x27;A&#x27; items such that it now starts with the letter &#x27;B&#x27;.<p>There is a problem here, because if John comes back online first; all items starting with &#x27;A&#x27; will get deleted. So when Bob comes online, either his rename operation will fail because the system cannot rename a non-existant item or it will re-create the item which John explicitly deleted (but this time with a new name - Which goes against John&#x27;s intention).<p>The system can never know for sure the intent of both users so it cannot automatically resolve conflicts (at least not accurately). In some cases, the benefits outweigh the disadvantages but it&#x27;s important to be aware of those disadvantages and that there are no one-size-fits-all solutions which work perfectly with all kinds of data.