Support hosting of Obsidian plugins on platforms other than GitHub

Use case or problem

Requiring Obsidian plugins which desire to be on the official plugin list and downloadable directly through Obsidian to use GitHub for hosting introduces some issues including:

  • Questions of ethics when it comes to GitHub’s use of code which is not released under a permissive license being used in copilot unattributed.
  • The fact that GitHub outages are remarkably common for such a popular and critical tool. During such an outage, no plugins can be downloaded.
  • Plugin developers are at the whim of GitHub’s pricing model and privacy policy (something many of us who use Obsidian because of its “you own your data” model object to).

Proposed solution

It would be nice to have flexibility about the way plugins are hosted including using other Git providers such as GitLab, Gitea, Azure Repos, etc. Here are links to some of the relevant APIs:

While integrating with each service individually would probably result in the most well performing solution, I realize that integrating with each of these services would require a non-trivial amount of work. One possible easier solution would be to less closely tie plugin releases to GitHub’s feature of “releases”, and rather tie it to the tags themselves, requiring the main.js and related files to be committed to the repo itself. With such a solution, a plugin repository could be identified by a clone URL for the sake of the community plugins list, and this would allow any method of hosting a git repository to be supported with less special casing in the code.

Alternatively, this could also be handled by allowing plugin developers to specify the specific URL where their plugin’s release can be fetched from, possibly even from within the manifest.json file. i.e. manifest.json file would have fields for where the main.js and styles.css files can be downloaded from, while the community plugins list would specify where the manifest.json file can be found.

3 Likes

To add my two cents, have a look at this article: Why not GitHub?

1 Like

Plugin developers are at the whim of GitHub’s pricing model and privacy policy (something many of us who use Obsidian because of its “you own your data” model object to).

Whims of GitHub’s pricing model? It has been free for public repositories from day one and still is. What is the concern that doesn’t exist with the other three options you list?

And why would Azure be a better option when its the same company?

I’m all for people having more options but GitHub’s pricing model isn’t a concern at all and these other concerns you list aren’t any different for GitLab or Gitea in the future. I’m not sure why the Obsidian team has GitHub as a rule but its a better bet than most other options given its dominance and ownership by Microsoft.

Both of these options are self-hostable, which def changes the calculus for these solutions.

1 Like

These factors are different for some other providers though, due to the fact that they are open source and self hostable (namely GitLab and Gitea). If I download the source code for such a Git hosting service, then I no longer need to be dependent on anything that happens with respect to its development.

This is not true for GitHub for example (I listed Azure as just another option, I realize it has many of the same problems, but competition is good, and allows people to jump ship if any one option goes sour). When I say at the whim’s of GitHub’s pricing model, what I mean is, as their pricing model changes, users who depend on the service to host their plugins have no choice but to just deal with it. For open source, self-hostable options, the end user has the final control, not the big company.

The poster didn’t mention self-hosted options. I think self-hosted Gitlab/Gitea are non-starters for Obsidian plugin hosting. There is literally no advantage to the Obsidian team to offer such an option and several disadvantages.

If I download the source code for such a Git hosting service, then I no longer need to be dependent on anything that happens with respect to its development.

You aren’t, but anyone wanting to download your plugins now is at the mercy of however you choose to host and your whims. As a user what advantage is there to me with this setup?

When I say at the whim’s of GitHub’s pricing model, what I mean is, as their pricing model changes, users who depend on the service to host their plugins have no choice but to just deal with it.

This is true but a huge what-if. Their pricing model hasn’t changed for open source projects from day one and its been steady for personal private user for years now (free, just like the open source option). Private folks hosting Obsidian plugins (especially open source ones) aren’t the ones that have to worry about the whims of GitHub’s pricing, its business customers, or people who want to use stuff like Codespaces (i.e. the add-ons). I know this because its part of my job day in and day out as a GitHub Enterprise customer :wink:

For open source, self-hostable options, the end user has the final control, not the big company.

No you as the developer of the plugin have control. The end user is the person downloading your Obsidian plugin and they have no control at all same as before.

Anyhow, I’m honestly not trying to shoot this down because I’d think it would be nice to offer other options for plugin hosting that get the “official” nod. But at the end of the day I think there is little advantage for the Obsidian team or the end user of their software to do anything but GitHub which, good or bad, is the biggest name out there.