Right now, modifications are made by applying a local change, then immediately pushing that change to Pinboard, and waiting on a full update from the server. This means that operations feel slow, can get interleaved with remote changes, and won't work offline.
It would be great to improve on this architecture in a way that supports offline editing. Right now, the best approach I can think of is to have a queue of local changes that need to be pushed to the server prior to a full update. These changes could potentially be diffs, not full changes (e.g., add these tags, etc) to minimise the risks of collisions (imperfect, but better than nothing). It may also be acceptable to not bother performing full updates following each change, but rely on the correctness of local changes, and then incremental updates (or a manual refresh) to pull remote updates.
I'm going to push this into future for the time being since it likely requires quite a bit of thought and isn't required to make the app fully functional for common use-cases.
Right now, modifications are made by applying a local change, then immediately pushing that change to Pinboard, and waiting on a full update from the server. This means that operations feel slow, can get interleaved with remote changes, and won't work offline.
It would be great to improve on this architecture in a way that supports offline editing. Right now, the best approach I can think of is to have a queue of local changes that need to be pushed to the server prior to a full update. These changes could potentially be diffs, not full changes (e.g., add these tags, etc) to minimise the risks of collisions (imperfect, but better than nothing). It may also be acceptable to not bother performing full updates following each change, but rely on the correctness of local changes, and then incremental updates (or a manual refresh) to pull remote updates.