It’s pretty simple. Supports a single username:password combo, issues a JWT in a cookie and that’s it.
It’s pretty simple. Supports a single username:password combo, issues a JWT in a cookie and that’s it.
Makes sense. Regarding the linked mention snippets. Please create a GitHub issue (https://github.com/silverbulletmd/silverbullet) for that. Right now it does the simplest thing, which is just to take x characters on each side. That can definitely be improved.
All your concerns are completely fair.
Regarding the first, the best I can offer is what many other project in this space say: “it’s just markdown files on disk, you can take them anywhere at any time”. Obviously this is only partially true, because the more SB-specific features you use, the more you get locked in. Your notes will never go away (if you back them up). But all time building queries and templates, would have been wasted.
Regarding company owned machines: a concern I heard for Logseq and Obsidian is that people cannot use them at work/with a work machine because they’re not allowed to install anything. For SilverBullet I’d recommend not installing it on your laptop (work or otherwise), but rather on some other machine. Perhaps you have a Raspberry Pi lying around unused. Or maybe you buy a cheap VPS (silverbullet.md itself runs on a $5/month Hetzner VM). Then you can access it from anywhere with a web browser, and I assume your work laptop has one of those.
Regarding the high pace of development: also fair. The reason I have not been very actively promoting SB so far is because of the high change churn rate. If you’re a power user, you kind of need to keep on top of stuff. Mostly I attempt to give people migration tools, but this is always a opportunity cost decision. Until recently some fundamentals still didn’t feel quite right (like the templates). I think we’re getting there now though. Another one I still need to figure out is how to do the distribution of templates, slash commands. This idea of a Library you import works, but you cannot easily keep it up to date. This so something to still figure out. Generally I’ll do my best to mark the parts of this that are experimental or prone to still change.
I hope that helps.
It’s a Dutch (I’m Dutch) pronunciation of the word “note”
Hah! Didn’t realize. Indeed! Although apparently still called “noot” then.
I have not used Joplin, but did write a few high-level thoughts on comparing it to Obsidian and Logseq elsewhere which I’ll just copy and paste here:
I have not used Obsidian nor Logseq as much as I’ve used (or developed) SilverBullet. However here are a few headliners, but the main difference may well be that in SB I’m really assuming that the target audience is technical enough not to be scared by the idea of writing a query, or creating a template.
A few differences with Obsidian: it’s fully open source and it’s a web app that you self host. It’s still markdown files on disk, but that disk is located on your server and they’re accessible from anywhere you have access to that server without having to do convoluted things like setting up (or buy) sync services (like you do have to for both Obsidian and LogSeq).
Obsidian tends to solve everything with plugins, whereas SB has more batteries included (although technically much of this is implemented as plugins that ship with SB itself) specifically: powerful indexing, querying and template support. Obsidian has Dataview and Templater, and some other plugins I think, but they’re developed by a third party.
Another difference difference would be UI minimalism. The number of panes and tabs in Obsidian dizzies me, although I know you can fold or hide all of them. In SB it’s minimal by default.
Compared to LogSeq: logseq is an outliner. You can do outlines in SilverBullet (and I do, a lot, there’s some nice shortcuts for this too: https://silverbullet.md/Outlines). However, SB is more of a wiki than an outliner. You don’t have to write everything in bulleted lists. To me this is important, because I also write my blog posts and other articles in SilverBullet and doing that in an outline is somewhat awkward.
But to be clear: Obsidian and Logseq are both great, and they’re more mature. They’ve been around longer and have bigger communities (so far). Try them out and see what you like.
Yes this is doable, with the caveat that I have not invested a lot of time in documenting all the plug APIs etc. You can have a look at the mermaid plug to get a sense of how this can be done, it will be similar except that you — indeed — may end up having to post something to a URL somewhere rather than render the thing on-the-fly with a JavaScript library you load externally: https://github.com/silverbulletmd/silverbullet-mermaid
I can’t speak to the general case, but let me answer why I picked the web app route in this particular case.
This was/is my reality:
What are my options? I could go native and develop this either as a native iOS app and Mac app, and then do an Android app because why not. This is hypothetically possible, but would mean that 2 years in I’d probably not be anywhere near the functionality that SB has today.
I could go with a cross-platform stack like react-native or Flutter. This would have been an option, I suppose, but neither of those stacks I fully trust in terms of long-term viability yet. And RN is not really built for desktop apps.
Another part of the reality: CodeMirror exists (https://codemirror.net/). This is an amazing piece of engineering that took years to build, it’s a pretty amazing code editor that is very extensible and… it’s a web thing. Having to implement this natively would likely literally take me years.
So I decided on the web app approach. I’ve had native wrappers (Electron and one for mobile apps) along the way, but ultimately removed them because they take too much time to maintain and test, and I’m just a one person army with a few hours available here and there. PWA support is pretty nice these days and gives you a reasonable experience at a reasonable development cost. It’s a good trade off.
Would I make different choices given infinite time and resources? Absolutely, but you know… reality.
This is my story and it doesn’t apply to everybody, but likely other projects have similar reasons.
It’s .silverbullet.db in the root of your space folder. Note that because there’s no schemas in SB, SQLite is used as a fancy key-value store and many queries become somewhat (but not very) optimized table scans. In this SQLite file you’ll see a “kv” table that contains everything.
That said, I have not tested this with hundreds of thousands of notes (I have close to a thousand myself). No performance issues there, but…
All files are kept on disk as “plain” markdown files. I say “plain” with quotes because SilverBullet does support some non-standard markdown notations. But in essence, like logseq and obsidian: it’s a folder with text files under the hood.
While I cannot give you an in depth comparison, I’m sure there’s a lot of overlap in functionality. Where I think things are heading in a relatively novel direction is with the recent improvements I’ve been making to templates. While long, this video gives a reasonable sense of what that can do and I’d say it’s early days: https://youtu.be/ZiM1RM0DCgo?si=qL795lyKNe9HwoxI
Yes, it’s using SQLite under the hood in Online mode and IndexedDB in the browser in Sync mode.
Well I have for the last two years, but I’m biased because I wrote it 🤓
I meant beast in the figurative sense. It’s not a desktop app, which perhaps doesn’t make that much of a difference. I wrote it so I think I’m entitled to call my own software a beast 😂
It’s perhaps a bit of a different beast, but you may give a quick look at https://silverbullet.md.
Only the server needs to be online to have access to all your notes.