Sync and online clarification

Before I ask about sync and online modes, I just want to say I’m super happy I’ve managed to install SilverBullet on a VPS using a 9 digit domain name, and also enabled authentication. I have my own private notes system which I can access anywhere, it’s amazing. (so now begins the real challenge of learning how SB works!)

My main point in writing this is to ask for confirmation on the following:

  1. Putting SB in sync mode copies all the files to my device’s cache (or wherever), meaning that I can access it all offline if I lose internet access.
  2. Keeping SB in online mode means that if I lose internet access I will not have access to any new changes I’ve made.
  3. Keeping my devices in sync mode means that they still sync with each other if connected to the internet, and if not connected, they will sync when the connection is restored.

So with all that in mind, why shouldn’t I just stay in sync mode? What’s the benefit of online? (this feels like a silly question but I can’t figure out the answer.)

Sorry. I have just read this: Client Modes

:zipper_mouth_face:

As you found out, you’re 100% correct on how this works. What I personally do is that I have sync mode on basically all my devices, also because it’s just faster. It’s only that I want access to my space on some “foreign” device that I use online mode, because it’s just quicker to access that way.

1 Like

Sorry, by “local mode” do you mean “online mode”?

Yes indeed.

1 Like

I think a lot of people get confused with the naming. Maybe switching Sync mode to device mode and Online to server mode. So that people from a glance can tell what mode does what, and maybe an icon change can help.

2 Likes

Let me start by saying that there are two hard problems in computer science:

  1. Cache invalidation
  2. Naming things

Likely SilverBullet suffers from both (although I hope to have ironed out most of the cache invalidation issues by now — just keep refreshing, people!).

This leaves naming things. It’s hard.

I’m super open to renaming the modes, so let’s see if we can figure out something better.

I’d be interested in everybody else’s take on this:

Is “device mode” vs “server mode” more clear than “sync mode” and “online mode”? I can see that, because it would be named after what the primary source of data is, whereas “sync/server” is more about what is doing operationally.

Opinions?

Personally I think it’s more important to describe what each function achieves for the user, rather than to describe what each function does technically.

So it could simply be “offline mode” and “online mode”?

I get that “offline mode” (or “sync mode”) is not strictly speaking offline, but it does achieve that for the user.

If we call it offline mode I would assume as a user that it stops communicating with the server (which it doesn’t). So I’d enable that when I know I’ll go offline.

I would then expect people to constantly manually toggle it, which could actually lead to some unexpected behavior content sync wise.

Good point.

Device mode and server mode does make more sense and is more self-explanatory then sync/online.

My first thought was offline vs online, but like @zef said, I would offline means that it doesn’t communicate with the server. I also thought of device first sync, client side sync and server first sync or server side sync. But at the end of the day, I think server mode and device mode are clear and straight to the point.

Thin client enters the conversation :wink:

Agree 100%, naming is super hard and, no matter what changes are made now, this conversation will come up again in a few months. No naming convention is perfect as it depends on the user’s point of view and/or focus.

Words that come to my mind:

When in sync-mode:

  • On device
  • In sync

When in offline-mode:

  • Thin client (unfortunately not efficient with non tech-savvy folks)
  • On server
  • Server mode

I also asked our AI gods and each time, they come up with different alternatives depending, as I expected, on the focus the user may have.

Maybe this is something worth exploring, changing the button action, or at least providing a visual cue depending on the state/focus.


Option 1: Focusing on Data Location

Online Mode: "Cloud Storage"
Offline Mode: "Local Storage"

Option 2: Focusing on Connection Requirement

Online Mode: "Connected Mode"
Offline Mode: "Offline Mode"

Option 3: Focusing on Data Freshness

Online Mode: "Real-time Updates"
Offline Mode: "Saved Copy"

Option 4: Focusing on User Experience

Online Mode: "Faster Loading"
Offline Mode: "Work Offline"

Giving it a bit more thought on the focus mode right after I submitted my answer.

What if we could do exactly that, show different states, for different modes in a very simple and non-intrusive way on the top bar?

I am thinking about maybe having, instead of 1 icon, maybe 2 or three that are color coded depending on the mode:

Example: We could have 2 icons like this (2 states per icon):

  • :cloud:,:iphone:
  • :green_circle:,:red_circle:

Which would help clarify the current situation:

  • :cloud: :green_circle:: Cloud storage, connected (in sync)

  • :cloud: :red_circle:: Cloud storage, offline (out of sync) (Bad state)

  • :iphone::green_circle:: Local storage, connected (in sync)

  • :iphone::red_circle:: Local storage, offline (not in sync) (no problem, should sync once goes online)

… or any other combination of 2,3 icons that could not use much real estate but provide a better detail of what is going on.

I used simple emojis but someone with good UX skills could probably come up with a better way of building this :slight_smile:

1 Like

Right. Today we use a yellowish top bar when we’re in a disconnected state so that element is already there. So if that’s reasonable, the second dimension is “what is source of my data”: cloud vs device. Using “cloud” here may be somewhat controversial, because many of us host in a local network which is explicitly not “the cloud”.

Which brings us back to device vs server again.

If this would be considered better, then the question is what should the UX look like? A button with a device on it when it’s in device mode? That would suggest that PUSHING it would put you in device mode. Or a pushed button in device mode, and never a server button?

I think users who didn’t have an issue with the name would be underrepresented in this thread so I want to add my two cents to the discussion.

To me “Sync” is a really good name - it’s more periodic, you can get conflicts, needs to synchronise for a bit when enabled. If I needed to change something, I think of the other one as “Website”.

I like that the current button is pressed (something is activated) for the more complicated mode. And (de)pressing a button has obvious UX, without the play/pause problem of music players - is it state now or is it what the button will do on press?

Could be that the big reason why people have run into misunderstandings is that it’s more difficult to introduce interactively than e.g. commands, especially on the read-only silverbullet.md But maybe we can change some onboarding articles? Namedrop “Client Modes” or “Sync Mode” in messages that are displayed to people that run into problems with these? Add links to error messages? Just wanted to brainstorm some wider areas for possible solutions here

2 Likes

I think the icons would complicate things more. And we can make the change to the wording first and if there are still misunderstanding, we can revisit how the UX can help illustrate the difference.

My vote on icons (which I think we shouldn’t change as of right now):
🛜 on server
:desktop_computer: on device