@arasbm As a recent NodeBB explorer (and NodeJs) I'll suggest you to start with the harder of plugins and themes and it's plugins.
As I understand the thing :
Plugin is a custom behaviour that could work on every NodeBB forum and that is not based on the theme. It should be configurable (if needed) and not conflict. It try to solves a problem that is experience related.
Theme is how you want your NodeBB forum to look like. It's easier to go inside because it's based on a sublime api and it's just css/html and and a bit of JS. If you want you theme to create a custom behaviour that is only applicable to itself then you can because themes are created and treated like plugins.
You can take a look at the api on every NodeBB page with {origin}/api/{path}
Both plugins and themes can make the use of the api and write content to use after. Take a look of the existing ones and you'll have a good point of view to start developing you owns.