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.

2 Likes

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

1 Like