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:
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.
Keeping SB in online mode means that if I lose internet access I will not have access to any new changes I’ve made.
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.)
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.
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.
Let me start by saying that there are two hard problems in computer science:
Cache invalidation
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.
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.
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.
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.
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
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
on device