Who's using federation?

Alright, another day, another potential feature I am considering removing (maybe I should create a dedicated category for this).

SB for a long time has had this idea of Federation. By linking to pages in the shape [[!silverbullet.md/Query Language]] you can link to effectively markdown files on other servers. When I added this I had high ambitions on turning SB into some sort of altnerative interface to a markdown-based Internet, and to use it for all kinds of things like syncing in other, remote spaces and solve all of the world’s problems.

But that didn’t really materialize. And honestly, the federation syntax in pages is resulting in a lot of special cases in the code and potential security issues (what if a federated page contains a Lua directive, should it just run that code when browsing there?).

The only real way that these federated links are used is for syncing libraries (it’s using this syntax) and for transcluding ![[!silverbullet.md/Getting Started]] on the initial onboarding page. Nice, but there’s other ways to achieve similar things.

Hence, my question is anybody using federated links for anything of significance, or has some ideas of how we absolutely need this feature?

Otherwise I may just remove it.

What removing it may also unlock is stepping away from this idea that all files are loaded from the server root, which complicates things a lot and results in all kinds of strange rules and complexity that is, honestly, hard to explain.

For instance, when you load http://localhost:3000/mypage.bla should this load the SB web UI loading a mypage.bla.md markdown file, or is .bla a file extension and it should just render that file directly?

The reason I mix these two, and don’t just host all plain files under e.g. /.fs/something.md was to make federation links work nicely. But if that’s no longer a requirement, I can clearly namespace these things again without ambiguity.

On this topic, an alternative could be to use something like this instead: 🔌 External Libraries as implemented by @janssen-io

1 Like

I do not foresee wanting to ever use it

1 Like

Couldn’t this be at least half decently implemented using space lua anyway? It would definitely simplify some stuff.

Apart from wanting to share libraries, I don’t use federation either.
And like you mentioned, the external libraries plug or maybe even space lua can solve that. :slight_smile:

I love the idea, but I honestly don’t use it for any pages and I had some weird one-off issues with it so I just use html links to silverbullet.md.

Ok, I’ll be working towards removing it.

I also like the idea, but don’t currently use it other than for libraries.

Agree with others that it could probably be done with space script/lua script too.

Heh, funny that this is now developing: https://llmstxt.org

The idea is to expose website content in a more LLM-friendly way. And of course the .txt is really .md. Some companies are adopting this already. Here are Stripe’s docs: https://docs.stripe.com/llms.txt

This may actually lead to more of the Internet being exposed as markdown files, since LLMs like this. Maybe there is a future in using SilverBullet as a browser of this markdown based Internet anyway :thinking:

1 Like

I only use it for linking to silverbullet.md documentation, something I can definitely live without.

However, as far as features go, I just find it very cool :sweat_smile: