Discourse tem um modelo de plugin personalizado, como escrever um plugin personalizado?

Sim, conforme linkado acima:

Você também pode executar um ambiente de desenvolvimento no GitHub Codespaces: