How can I make my own Discourse plugins?

Hi, I want to make my own discourse plugins and what languages I need to know and what tools/programs/apps I need to do so. I appreciate it.


I’ve only just started but here’s my ‘starter for 10’ to get you going:


  • these
  • this
  • Try and read the code on the simplest, but popular plugins and see if you can understand what they are doing (this is not always easy, especially with the complexity of dealing with multiple files and the sometimes brutal functional brevity of javasctipt, but persevere)

You need to learn:



I appreciate it! What “kind” of JavaScript, like web or node.js?

ECMAScript. It’s used in both ‘places’.

Would I just make a new atom file named plugin.js and work on a plugin there?

No. There are no ‘.js’ files. JavaScript is mainly stored in ‘.js.es6’ files. Ruby in ‘.rb’ files. It’s more complex. Take a look at existing plugins for example file arrangement and content. You need to understand serialisation, Ember templates, the Router and the Model, View, Controller concept.

I would highly recommend you install a simple existing plugin of your choice and try modify it in some sensible way.

Dont skip on the reading.

I think it’s fair to say is a pretty steep learning curve because there are a lot of concepts to get to grips with, two languages, one framework and Discourse’s ‘way of doing things’ …