Displaying sync state

Early on, we realized that we needed some way to communicate to the user when data isn’t synced with the server…

Sync is a two-way street

Most of what I’ve written so far has been about uploading changes from the client to the server. But we found it is equally important to download changes from the server…

Offline attachments

When writing offline mode, attachments proved to be a uniquely difficult aspect of syncing. The nature of attachments differ from other…

The two ID problem

I want to call out a surprisingly tricky problem we ran into when developing offline mode: handling identifiers. In Trello, all…

Sync failure handling

In the last article we discussed how we sync our changes with the server. Ideally, those HTTP requests would always work – if…

Syncing changes

Going offline meant using our database for all immediate changes to the client. But obviously we later want to sync those…