How to build an extensible Go desktop app with hot-reloadable UI-modifying plugins?

I’m designing a Go desktop application that is meant to be extended by third-party developers via plugins.

A hard requirement is that plugins can be hot reloaded both during development and while the app is running, without restarting the main application.

It it aimed to be something like VSCode/Obsidian etc. where users will be able to add UI elements as well.

What are my options.

I would take a look at:

For the UI itself you’re probably looking at Webview or something similar. That’s what VSCode/Obsidian are using. Take a look at Wails:

https://wails.io/

1 Like

In VSCode, there is contribution points (menu). Will I be able to achieve that with go-plugin

You can add an application menu if that’s what you are asking:

https://wails.io/docs/reference/menus/

1 Like