Sustainable SilverBullet

Hey all,

The topic of financially supporting me for the roughly 3.5 years I’ve spent on SilverBullet has come up many times over the years. Thus far I have always held off on this topic for two reasons:

  1. Since money would come into play, I’d fear that my level of motivation would be connected to how much money I’d be receiving and if it would be “worth my time.” And the chances of getting sufficient donations to be able to quit my day-time job were extremely low.
  2. I didn’t need the money, since I had a well paid full-time job.

Nevertheless, a few months ago I have started to accept donations via Github Sponsors which a few of you have signed up for, and I appreciate this a lot! But of course, with the current $35/month I receive through this, I mostly pay bills of running the various silverbullet.md websites and services, not much else. That was the original goal, so all good, but I’d like to explore if I can expand this.

A few things have changed for me recently:

Primarily, I have quit my full-time “jobby job” to pursue a mix of income streams:

  1. Consultancy
  2. A paid version of my management educational site

I’ve been focusing hard on this for the last month or two — hence my absence. The good news is that with a mix of these two I now seem to be getting to a minimally sustainable income again, with explicit time left to spend on SilverBullet. This new setup allows for more flexibility in where I spend my time.

This opens the door to a third potential income stream:

  1. SilverBullet something

Luckily I don’t need to go all in, “bet the shop” style, but I would like to carefully explore ways to slowly get to a sustainable financial model here as well.

I say careful because I’ve seen many open source projects be enshittified by pushing too much on the commercial aspect. I’ve worked for those companies and understand the tricky choices they have to make to balance “what’s right” vs “what’s profitable.”

The goal: long term sustainability of the project.

Previously I spent time on SilverBullet when I had it: nights, weekends, occasionally during the day when I hit a blocker that I needed to resolve to be able to do my regular job, for which I also use SilverBullet heavily. Sometimes I could spare a lot, sometimes hardly any. The only way to really solve this is for me to either hit the jackpot elsewhere, retire and do this full time, or — the more likely scenario — explore ways to generate income from SilverBullet.

The calculus is simple: the more income I can generate from SilverBullet, the more time I get to spend on it.

Options

Let me start with options I’d actively like to avoid:

  1. Go proprietary. While I could technically fork SB and continue to develop it as a proprietary product that I charge for, this is not a great option. I think a lot of users come here specifically because they want something open source and unencumbered. In fact one of the triggers to start SB was because I wanted an open source solution.
  2. Go open core: make part of SB open source, then build paid features on top. I don’t know what those paid features would be, but I know this inevitably going to result in a worse product, because the temptation to do build something into a commercial version to get some more $$$ is going to be big.
  3. Feature sponsorships or “bounties”: tell me what feature you’d like developed and you’ll pay me for my time to do it. I’m less against this option, but still don’t like it because this may steer the product into directions that are worse for the larger community. For instance, what has come up is adding multi-user/team support. This would a huge undertaking that would involve changing a ton of assumptions. Some users may really like this, but it would get a lot more complicated for everybody else and really distract from SB’s current primary use case: personal knowledge management.

So let’s look at options that I think would make more sense. What I really would like to hear from you if any of these make sense to you, if you’d be interested in “buying” them, or if you have other, fresh ideas.

Donations, sponsorships

This is already live but I have not actively pushed it. I’d likely publicize this option more, put it on the main website, maybe hint more at it in the software itself. I can open more options, for those not a fan of Github sponsors.

Of all the options, this is the healthiest option. It’s not connected to “if you do this, I will give you money” rather it communicates:

SilverBullet is valuable to me, let me support you in continuing to spend time on it.

If there’s interest I could connect this to visual indicators e.g. in the community (with a badge of some sort) to showcase you’re a SB financial supporter. Or give you access to a private forum where we can all talk about how awesome we are :rofl:

Newsletter

Closely related and perhaps part of the donation/sponsorship idea, but I think it may be valuable to launch a (paid) newsletter. Every other week or month I’d collect current goings on in the SilverBullet community and feature development progress and send it around. This could be included in a sponsorship to get more of a feel you’re paying for something that you wouldn’t already get for free.

Obvious drawback: if you don’t pay, you’re missing out. And it takes time to write these things, time not spent on SilverBullet development.

Video tutorials, walkthroughs

I was notified a few days ago by Youtube that people have now watched an accumulated 5000 hours of SilverBullet related videos. That’s quite a lot. Partially due to poor general documentation, I think a lot of people would be interested in more video material, and screencast style things work quite well.

So another option would be me recording a bunch of videos where I go more in depth, and then sell those e.g. in a bundle.

Topics could include (but here I’d be very interested in your input):

  • A more extensive walkthrough of SilverBullet’s feature set
  • Guides on how to deploy SilverBullet in various configurations
  • Space Lua for beginners: Lua basics and how they integrate into SB
  • How to use objects and queries in SilverBullet
  • Technical architecture of SilverBullet

These are just some initial ideas. Again, let me know what would be of interest to you.

Hosted SilverBullet

This would move dangerously to pitfalls around open core, but still it’s something to explore: I could adapt SilverBullet to be easier to host in a SaaS style, and either open source that work or keep it to myself an offer it as a subscription, $5/month let’s say.

The potential pitfall of this is that it’s a significant project and operational overhead that would take a lot of my time. Time that I would then not spend on developing the SB core.

As I said — these are just ideas a this point. Let me know what you think. And if you don’t want to wait and jump in and support me immediately, sponsorships are already open.

6 Likes

About the hosted part, maybe you can “partner” with some hosting platform that already offers container hosting and you put some “affiliate link” in the README for example. Unsure how easy it is to strike such a deal, but I know some open source projects are doing it. It would probably be a very low effort way to get some revenue (really no idea how much tbh, just an idea).

1 Like

I contracted a $2/month mini server for hosting SB and it works fine. I would be perfectly ok if i had to pay, say $5/month and only focus on the content and not on the machine.
If 1000 people think like me, i think you are getting in a good shape.

1 Like

I personally would still self-host it, mostly because of the privacy aspect. Unless it’s a) open-source, b) we can verify that that version is running on the server and c) everything is e2e-encrypted with customer-managed keys.

Still a decent model to make some more money, I think. Immich is a very popular Google Photo’s alternative and it seems like PixelUnion.eu is making a pretty penny with it.

Open Core + Premium features is something I’d also support as long as the core ticks the most important boxes.

Bounties for features or ‘priority’ tickets based on ‘support licensing/donation tier’ would also be interesting. :slight_smile: The first of these two options might be less predictable/steady, I imagine.

1 Like

One thing that’s appealing to the hosting option is that I think I can make it freemium, because the running cost of storing some text files is super low. Potentially this can really lower the barrier to entry for people to start using SB. I think the deployment part is quite a hassle. I wouldn’t expect many current users to switch.

2 Likes

I think SilverBullet is a really cool project, and it’s definitely fair to want it to be sustainable.

I might recommend looking into how the Zig language foundation approached this problem of funding open-source projects, and also the Hyprland window manager. Both of these are pretty popular open-source projects, and I think they’ve managed to make money in a way that lets them pursue their vision, and doesn’t turn off their existing users.

Hyprland’s model is newer, but I think there’s a monthly optional fee that one can pay that gives users priority support, and there’s a bonus starting config.

Zig might be a better example. They have something like a feature bounty. Donor Bounties: A New Kind of Feature Bounty ⚡ Zig Programming Language

Anyway, not sure how relevant these examples are, but just some food for thought.

A good starting point would be a revenue-sharing (20%) and hosting agreement with PikaPods, similar to what Actual Budget does. This would significantly reduce barrier-of-entry for new users, offer you a (probably small) revenue source and even be a good test for the SaaS model. I’ve heard it’s pretty good but never personally tried it.

With hosted option you don’t really target current users. You target users that might be interested in SB power, but don’t necessarily want/are able to host it themselves.

As to the direction - why not try out few ideas? It’s really hard to tell which one can work out yet it’s very easy to point at any given one and “convice” yourself that it’s not a great option. From what I gather about succesfull products - it’s always the result of “f**k around and find out” situation :wink:

1 Like

Another possible option:

Another idea that I may prototype:

I think one of the more annoying things of deploying SB is the whole SSL thing and making it accessible from outside your network. I like running SB locally, and having all the files there, but the poking of holes via tailscale, VPNs etc. is a pain.

What about an (affordable) service that would basically reverse proxy your traffic, built into SB. A lot like ngrok, but built in, and more efficient (because the SB client can be served directly from an edge location).

You’d sign up, get a publicly accessible subdomain with SSL (something.silverbullet.md for instance). You run your SB instance locally, on your laptop or server and point it at the proxy service (likely via a secure persistent websocket connection). You will now have full (authenticated) access via something.silverbullet.md whenever your SB instance is running. Of course, this would require users to trust the proxy to be fully secure.

I’d use this :slight_smile:

3 Likes

Interesting, but this looks like just setting up Github sponsors (like I already have) but framing it as a maintenace fee with standardized texts, right?

Finally a way to throw some money at you!

Regarding hosting, please keep the overhead in mind. Everything that can be abused, will be abused. The hosting part is the easy part. Freemium plans are often used to host and share questionable or malicious material.
I don’t have personal experience, but I’ve read a lot about the problems you can encounter. I can share more if wanted.

I think ‘selling’ plug-ins could be something. Keep the core as a lot of people like it as is. Check the favorite Obsidian function and sell it as a plug-in. Keeps the core functions and SB clean while adding padi functions.

Just an idea.

1 Like

I realize taking up a hosted solution, especially freemium can cause a lot of pain.

However, I think it will also really expose SilverBullet to a much bigger audience. To be honest, I only rarely suggest to people around me to try SilverBullet because I know you need to be a “type of person” to have the know how and interest to do the fairly complicated setup required to make SilverBullet run. And to do that just for a notes app… I know it’s worth it, you all know it’s worth it, but I bet a lot of people are like “yeah whatever, let me just use obsidian” or something simpler to run.

Totally fair, just wanted to share my thoughts about it.

Do you plan to integrate E2EE at some point? Great selling point and a must-have for some people.

See Post v2 roadmap

Nice, thanks!

Two more things, and I’ll stop talking:

  • First, in addition to more promotion, have multiple platforms that accept donations, for donations (ko-fi, liberapay, etc) or even cryptocurrencies. I’m not sure if this is an option.
  • It might be stupid, but how about a store for plug-ins and Lua scripts? You or the project could get a cut, and you could offer “premium” features.

Yep, will do something with that.

This is an option, but quite a big project to build. Also, I really appreciate the open source culture around SilverBullet. One of the triggers for me to build SB (I used Obsidian for a bit before) was to have a fully open source culture with open sharing. Obsidian has a big community, largely with open source plugins whereas its core product is proprietary. It would be highly ironic if SB would do the opposite: build a proprietary ecosystem on top of an OSS core product :wink:

2 Likes

I think a way to make SB accessible to a broader userbase (aside from resolving the self-hosting requirement) would be to create a set of default or example index pages, along with some example components (queries) for pages that people can copy paste to get started and feel at-home faster.

IMO, the biggest difference between SB and other notes apps is that most have component-filled UI’s with side bars, tabs, search buttons, lists, graph views, and many other things. I like silverbullet’s more DIY approach to UI, but I don’t think it’s one that everyone is willing (or able) to put in the work to enjoy.

In a certain way, it’s a very much like the text editor vs IDE debate (Vim vs. Visual Studio/Jetbrains/<insert your ide here>). Some people just don’t want to put in the time it takes to make and maintain a vim configuration, even if they can use it. They either end up using an IDE, or in some cases they end up with a vim distribution (like LazyVim or SpaceVim). Right now SB is a solid base (much like vim is). Maybe it needs something akin to Vim distributions to help make it more accessible. Call it LazyBullet?

1 Like

Wireguard is widely supported and it just works (very reliably, I must say from my own experience). All you need is single public entrypoint to the Internet (it does not matter much if the IP is dynamically allocated or static, the former can be also easily workaround in many ways, e.g. using dynamic DNS updates on IP change). :slight_smile: