this post was submitted on 11 Feb 2024
424 points (97.7% liked)

Selfhosted

40006 readers
578 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
(page 2) 36 comments
sorted by: hot top controversial new old
[–] [email protected] 61 points 9 months ago (8 children)

This seems interesting, and I might try it.

But... I'm kind of sick of web applicatioms. Why does everything need to be a web application or a "not" web app using electron. (In this case I see the use case and reason, but in general)

[–] [email protected] 0 points 9 months ago

you can install it as a PWA

[–] [email protected] 117 points 9 months ago

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:

  1. I want access to my space from my laptop (mac), phone (iPhone) and tablet (iPad) and browny points for my Boox e-reader (Android) and even more browny points for just having access from any random computer in the world (with a web browser)
  2. I have a full-time job, and this would just be a hobby project
  3. I have been doing (or been involved in) web development for 25 years

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.

[–] [email protected] 2 points 9 months ago (2 children)

I'm not crazy on web apps either. I'd want to edit my notes in vim.

load more comments (2 replies)
[–] [email protected] 6 points 9 months ago (1 children)

Generally, user interfaces are hard work. If you just want to code, then having a web app means you're already 50% done.

Actually should be 90% done, but each browser has differences which means more coding... I'm looking at you, Internet Explorer

[–] [email protected] 5 points 9 months ago

mobiles and desktops are very diffrerent and need different user incerfaces. So you are not savin, much work. In fact trying to handle both in on may be worse because of all the special cases. Be glad you don't have to support teletypes, they demand different user interfaces.

[–] [email protected] 4 points 9 months ago

So that you can self host I think

load more comments (3 replies)
[–] [email protected] 6 points 9 months ago

Wow, this is super cool - saving this for when I finally spruce up my old desktop for a home server. You’re a talented person mate

[–] [email protected] 1 points 9 months ago (1 children)

Nice notetaking app with powerful features!

Main question for me: Can you export plain markdown from the application (or Docker Volume) or is everything only accessible through the application?

I don't want to manually export my stuff if I want to switch note application sometime in the future

[–] [email protected] 12 points 9 months ago (1 children)

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.

[–] [email protected] 1 points 9 months ago

Nice! Thanks for the clarification.

[–] [email protected] 2 points 9 months ago (2 children)

This looks awesome and exactly what I have been looking for.

One question about implementation just out of curiosity, is there any database? I'm worried that when it gets to hundreds or thousands of pages querying things becomes slow if it's just scanning files.

[–] [email protected] 3 points 9 months ago (1 children)

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…

[–] [email protected] 2 points 9 months ago

I said hundreds or thousands, I don't expect to be creating hundreds of thousands of pages, but from your reply on the other thread SQLite should be more than capable of handling this scale.

Nice knowing that you have close to a thousand and it's still fine. It will take me a long time to get to that amount of pages, but if I can get started with this it seems like an awesome way of storing knowledge bases, so I expect it will grow quite rapidly as I migrate all of my different things into it.

[–] [email protected] 5 points 9 months ago (1 children)

Yes, it’s using SQLite under the hood in Online mode and IndexedDB in the browser in Sync mode.

[–] [email protected] 1 points 9 months ago (1 children)

SQLite should be more than enough, I can't find the file on the space folder though, is it created inside the docker container on server startup? Is there a reason not to store it in space so it doesn't need to be regenerated each time?

[–] [email protected] 2 points 9 months ago (1 children)

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.

[–] [email protected] 1 points 9 months ago (1 children)

I feel like facepalming myself to death for having asked such a stupid question before running an ls -a on the folder.

One last question, I've been reading on Plugs because there's one thing that I use regularly that I think doesn't exist and want to know if it would be possible for me to implement, it's called plantuml. Essentially it's a plug that would act on a specific block of code, like the latex one, and would use POST the code to a configurable url, get an image as return and display that instead.

[–] [email protected] 1 points 9 months ago (1 children)

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

load more comments (1 replies)
[–] [email protected] -4 points 9 months ago (4 children)

Why not something like syncthing and then just use a text editor you like?

[–] [email protected] 12 points 9 months ago

If you know of any FOSS, offline editors for Android which can do what silverbullet can, drop a link.

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago)

That's exactly what I did and never looked back. Just installed code-server + a few vs code plugins. Automatically synced via some some scripts that push and pull+merge git commits, done. No need for one of those million note taking apps. I also installed polyglot notebooks for vs code to embed code into notes.

[–] [email protected] 19 points 9 months ago

Did you bother opening the link? This project is clearly much more elaborate than simply synchronising notes.

load more comments (1 replies)
[–] [email protected] 16 points 9 months ago (6 children)

This looks interesting; is anyone here using it?

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

i'm using it at work to take notes and write documentation.

i think it's a fantastic app.

i have it as a pwa and have at least one silverbullet for each desktop.

i have ~100 notes perfectly organized in silverbullet!

the only things i would change is compatability with other tools. there is no way to export to PDF, if you nees to convert the note to docx you need to copy paste everything.

[–] [email protected] 5 points 9 months ago

I use it and love it. Having the metadata (tags, dates, ...) of your pages available to query and organize is awesome. I also love the tagged tasks feature.

[–] [email protected] 11 points 9 months ago

Yes, I have used it for many months. It has been the best solution for my use case for a while. Which is tasks, shopping, planning (trips, ..), recipes, and a simple knowledgebase. It was the offline support that set it apart from some other solutions

I have the files in a syncthing folder, so I can access the files without running silverbullet

My biggest problem is keeping up with all the changes. Zef made some youtube videos that are helpful

[–] [email protected] 3 points 9 months ago

Yes, I do and it's great. I just wrote a template for cooking recipes.

[–] [email protected] 80 points 9 months ago (1 children)

Well I have for the last two years, but I’m biased because I wrote it 🤓

[–] [email protected] 18 points 9 months ago (2 children)

I'd be curious to see comparison with Logseq. As it's rightly mentioned, there are thousands of note taking apps and I’m not quite sure I see the selling point of SB. I really love the idea of notes as a database, but the query langauage seems subpar, more akin to obsidian's dataview than the overwhelming power of tiddlywiki's filters or Logseq's queries.

I went from evernote to tiddlywiki to Obsidian to Logseq and somewhat stuck here now because I got the powerful queries in a very neat UI. With the market oversaturated as it is, I'd be nice to see what Silverbullet brings to the game that others don’t, what are the distinguishing features.

[–] [email protected] 8 points 9 months ago (1 children)

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

[–] [email protected] 2 points 9 months ago

Here is an alternative Piped link(s):

https://piped.video/ZiM1RM0DCgo?si=qL795lyKNe9HwoxI

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source; check me out at GitHub.

load more comments (1 replies)
load more comments
view more: ‹ prev next ›