Sync UX improvements (esp. for mobile): ordering of files within the sync process

Use case or problem

This is part of a “two part” overall proposal to improve the usability of sync in scenarios where the same note is frequently accessed/edited from multiple devices - e.g. daily notes or other “inbox” / quick capture type notes (other part is here). Since they could be implemented separately (or only one or the other) and still provide some of the benefits, I’ve posted them as separate feature requests. Both are particularly targeted at mobile app usage (especially iOS) in terms of where the benefits would be mostly felt, though would apply for Android & desktop as well.

There are often sync-related issues using daily notes, or other quick capture type notes, with the mobile apps when those same notes are also frequently edited on the desktop as well. I ultimately decided not to use daily notes at all because of either suffering relatively frequent sync conflicts / outright data loss, or having to sit, wait and watch for the sync process to fully complete every time I opened the mobile app to try and quickly capture a fleeting thought or note down a new task.

However, even without speeding up sync as a whole (which would be nice), or enabling the iOS app to take advantage of the opportunity offered for iOS apps to do just a little background processing (which would be even nicer, though I understand there’s some specific technical problem preventing this at least for the moment) … I believe some adjustments to sync could make noticeable improvements to the usability of daily/frequent-use notes across multiple devices/platforms.

Proposed solution: ordering of files within the sync process

To speed up the point within the sync process overall at which the user can safely begin editing a note which may well have been edited from another device since Obsidian was last opened (e.g. today’s daily note), Obsidian sync should explicitly check/sync certain files first, before continuing with “the rest”.

Specifically, the following is my initial proposal for the order of syncing:

  1. The active/selected file in the app
  2. All other files in tabs, or sidebars, visible in the app
    • (currently only relevant for iPad/desktop apps, which allow multiple panes &/or notes in the sidebar(s), whereas the mobile apps can only have one tab/file visible at a time)
  3. Today’s daily note (if daily notes are in use, and not already synced under items 1 or 2 anyway)
  4. All files in other open tabs (non-visible), or in the sidebars, in the app
  5. Markdown files created or modified in the remote vault within the last 6 hours
    • (time period just provisional/indicative & could be different; it’s intended to reflect “notes the user’s just recently been working on on another device” - another alternative might be “the N most recently modified/created files in the remote vault”)
  6. All other .md files
  7. Anything in the .obsidian folder (e.g. settings, plugins & plugin settings)
  8. All other non-markdown files (e.g. images, PDFs & other attachments - typically much larger files than the others)

Items 1 to 4/5 are obviously targeted quite specifically at use cases where the same notes are edited from multiple devices. When combined with the related proposal of a new sync icon state this would minimise the time before a mobile app user can clearly see that’s it’s now safe to start editing the note.

The ordering of items 5/6 to 8 amongst “the rest” is less critical, but intended to help keep Obsidian “as up to date as possible” in scenarios where there isn’t time to fully complete sync every time it starts. For example: if someone opens the mobile app to very quickly check something in a note or capture a new note, and then immediately closes it again (or more likely just puts the phone back to standby) before sync completes, it’s probably more “useful” for when the app is next opened (perhaps when no connection is available) for Obsidian to have already synced several other small markdown notes than maybe just a single larger attachment file.

Note: if it ever does become technically possible for the mobile (iOS) app to take advantage of background processing, this ordering would maximise the usability advantage to be gained from it, as syncing items 1 to 3/4 (& maybe even 5) should almost certainly fit within the time & data limits imposed on each background sync - so in many cases the user’s “current” notes would already be synced when they open the mobile app. (Depending on exactly how iOS background processing limits operate, maybe it would only be setup to even attempt to sync items 1 to 3/4/5 in the background.)

Related feature requests

User-defined sync order / priority - Feature requests - this request overlaps with / expands on a couple of the replies in that earlier post, but is slightly different to the actual request as it doesn’t envisage/require the user specifying/controlling the order in any way (other than as a side-effect of what tabs they have open).

1 Like