I’ve set up SilverBullet in my local server, which isn’t up constantly, so I want my client to run in Sync Mode but I have a few problems:
it takes really long when creating a new page, even when refreshing and either the new page is created with the content from the page I was in or when I start typing, after a few seconds, all input is erased and page goes back to be completely blank.
it takes really long to create a new Quick Note, more than a new page, but at least it does not have the other problem (erase input or write previous page content).
I’m using Zen Browser, all extentions are disabled for my SB’s domain.
When I lose server connection (nginx with https on an internal network), page creation takes extremely long. Sometimes, when I switch between existing pages, the old content is shown with only the title changing, and once this happens I get “phantom pages” with duplicate entries and “<” and “>” symbols in the path most of the time.
If I ignore latency and work too fast, tasks “execute” while I’m on another page, breaking the current one.
If I forget to enable Sync mode before leaving the network, Silverbullet PWA becomes unusable. The browser version only works poorly in Sync mode.
Everything works fine on the internal network in Online mode. Please point me in the right direction to solve this!
The source of this problems comes from the fact that I want to be really sure not to overwrite an existing page due to a sync not having happened yet. The scenario that could happen: on device A you create page “new page”, fill in content and sync it back to the server. On device B, you open page “new page” but it hasn’t synced yet, you would now end up with an empty page – confusion. So, what happens now whenever you navigate to a page that doesn’t exist is it does an extra check with the server if it’s really not there. If not, it will create it. It’s this extra check that’s causing this behavior.
For quick note what I could do (because we can be pretty sure that you’re not going to generate the same page name twice) is just pre-emptively write an empty file locally and then navigate there, this should be a lot quicker. However, for the general case I’m not sure we want to do that, which means we have to go back to the server to check.
Unless we introduce a truly “disconnected” mode, where no communication with the server is happening at all.
Thanks for the feedback that this is intentional. Too bad we don’t have any way to prevent this behavior or at least set a timeout. For me the delays for each activity are around 5-15secs, which is a little too much.
My use case - I have some devices that I must sync on local network and then I work with them for some time remotely, disconnected (tailscale is not an option on these devices, I also don’t want to expose my server to the public internet). I usually work around this with creating one page when online, using it for everything and then “do a clean up” later when on the local network, but this is far from convenient usage.
I got a bit excited my issue could be solved on v2 with online mode removal, but now I understand that is not the case at all. I will keep my fingers crossed for some future “disconnected mode” Is it ok to log this as feature request on github? I searched and apart from #171, this was not mentioned yet.
Out of curiosity, how did you get SB working in Zen? I am getting a DOMException error (which has at least one thread here from last year), which I assume is tied to one of Zen’s privacy controls, but I haven’t been able to find a combination that works.
Edit: Sorry, long day: remote mode works fine, Firefox also works fine (Zen is based on Firefox). Sync mode just shows a mostly blank screen and an unclickable toolbar. Apologies for threadjack but I was so happy to see a Zen user using SB.