@Gargron I maybe overstated my case. A lot of it is not Mastodon's fault but just how hard it is to write offline-first apps in general.

When I worked on PouchDB, we had a whole sync protocol between the client and server that dealt with versioning, conflicts, etc. You just called `db.sync()` and you were done. I don't expect Mastodon to add this, but it's just an example of the kind of thing I miss from the PouchDB world.