Não sou iniciante no Discourse, mas também não sou um especialista.
-
O componente de tema usa HTML, CSS e JavaScript para aprimorar um tema base.
Note que falo em tema base, pois geralmente é chamado apenas de “tema” e, às vezes, as pessoas não fazem essa distinção, sendo necessário inferir. Um tema e/ou componente de tema pode ser instalado por um administrador sem precisar tirar o site do ar. Se você for um cliente do Discourse, também pode adicionar esses componentes. (lista) Veja também: Guia para iniciantes sobre o uso de temas no Discourse -
Um plugin usa Ruby e pode fazer praticamente tudo que é possível. Se você for um cliente do Discourse, terá um conjunto limitado de plugins que podem ser ativados. No entanto, se estiver hospedando seu próprio servidor, poderá adicionar quantos quiser, mas fique avisado: vejo muitos posts relatando que plugins personalizados quebram o site durante atualizações. Esses também não exigem reinicialização ao serem ativados; suspeito que uma reinicialização possa ser necessária na primeira instalação. Outros podem complementar, pois minha única experiência com plugins foi ativá-los pelos menus de administração. (lista) Veja também: Guia para iniciantes sobre a criação de plugins no Discourse - Parte 1
-
Como não desenvolvi um plugin, meu palpite é que você esteja se referindo ao Discourse API Ruby Gem. Veja: Use the Discourse API ruby gem
-
Existe também a API, que utiliza webhooks e é normalmente usada com o curl ou outra linguagem de programação. Isso é bom porque te liberta da necessidade de usar Ruby.
-
Embora eu também não tenha mexido com isso, você poderia programar no nível do banco de dados PostgreSQL, mas não recomendo, a menos que seja muito habilidoso e tenha muita confiança nas suas capacidades.
Espero ter ajudado.
EDIT
Bônus, se quiser se dedicar totalmente como desenvolvedor do Discourse
Veja: Como começar a criar coisas para o Discourse se você é iniciante (como eu)