Советую прочитать замечательную серию статей о плагинах от @eviltrout, она начинается здесь:
После этого изучите несколько официальных плагинов на странице Discourse в GitHub.
Затем пройдите по нескольким плагинам в категории Customization > Plugin и внимательно изучите их исходный код.