Theme-Component v Plugin: What's the difference

I am not a beginner with Discourse but also am no expert.

  1. Theme-component uses HTM,CSS,JavaScript to enhance a base theme.
    I note base theme because it is typically called theme and sometimes people don’t note the difference and you have to infer it. A theme and/or theme component can be installed by an admin without taking the site down and if you are a Discourse customer, you can also add these. (list) Also see: Beginner’s guide to using Discourse Themes

  2. A plugin uses Ruby and can do just about anything possible. If you are a customer of Discourse you have limited sets of plugins that are allowed to be activated, however if you are self-hosting then you can add all you want, but be warned that I see lots of post where custom plugins break the site during an upgrade. These also do not require a restart when activated; I suspect a restart might be required when first installing. Others can elaborate as the only experience I have with plugins is to activate them from the admin menus. (list) Also see: Beginner’s Guide to Creating Discourse Plugins - Part 1

  3. I have not developed a Plugin so my guess is that you are refering to Discourse API Ruby Gem. See: Using the Discourse API Ruby Gem

  4. There is also the API which are webhooks and typically used with curl or another programming language. This is nice because it frees you from using Ruby.

  5. While I have not dabbled in this either, you could program at the PostgreSQL database level but I would not recommend it unless you are very skilled and very confident in your abilities.

HTH


EDIT

Bonus round if you want to go all-in as a Discourse developer

See: How to start building stuff for Discourse if you’re newbie (like myself)

7 Likes