TL;DR: I have experimental builds of SilverBullet+ using Electron hoping for better performance and a better Linux experience, I would really appreciate people to download test it out for a bit, see if you run into any issues and how it performs for you:
(downloads under the edge section).
The longer version
In May I launched the first version of SilverBullet+, the desktop version of SilverBullet:
It was proudly built on Tauri instead of the, much more common Electron framework that practically everybody else uses (VS Code, Slack, Obsidian, LogSeq, ...). I had a few arguments for this choice:
- Tauri (usually) uses the OS's native browser engine (Webkit on Linux and Mac, Chromium on Windows) so there's no need to distribute the entirety of Chromium with every single app (= smaller downloads, less disk space) and I thought this would also translate in lower resource consumption (notably: memory).
- Tauri could also build mobile apps (iOS and Android) in the future, whereas Electron is desktop focused only.
A few insights since the launch:
Supporting multiple browser engines remains a bit of a pain. There's a bunch of webkit specific issues that took a lot of time to iron out. Yes, it's good they are (because of course there's also many Safari users of silverbullet in general), but I really got to appreciate the value of having "one browser engine that you control". I'm not a fan of the dominance of Google's Chrome for this, but as a single-person shop, I can use all the simplicity I can get and Tauri's different rendering engines didn't help.
Resource use — while the download and app size of a Tauri app is significantly smaller, at least on Mac and Windows, due to its architecture, its memory usage is actually not. If you have a single window open it's probably a bit cheaper, but personally I have often 2-5 windows open and each window uses a lot of additional RAM. With Electron it's easier to share these resources so the memory usage can actually be cut down to be lower.
Linux — no offense — is a pain in the buttocks to support. So many versions of libraries, window managers, package managers. I shipped with a bunch of hacks to disable GPU based rendering and whatnot, just to get people to get it running for people. And I suspect the Linux experience is pretty bad as a result (I only have VMs to run this on and don't use it day to day so I cannot say for sure).
On the topic of mobile: I've deprioritized this project for a bit, but I'll start a separate thread about this topic.
Anyway. I now have a test version of SB+ built on Electron. I tested it on mac, windows and ubuntu, but if you have time and give it a shot and tell me what you'd run into and what your general impression on performance is, I'd appreciate it:
Migration note: if you have spaces configured with sync enabled, you'll have to re-enable sync on those and likely reauthenticate because auth info is pretty much impossible to migrate.
Thanks! And open to input on this topic, of course.