Я не новичок в Discourse, но и не эксперт.
-
Тема-компонент использует HTML, CSS и JavaScript для расширения базовой темы.
Обращаю внимание на термин «базовая тема», так как обычно её просто называют «темой», и иногда люди не отмечают разницу, поэтому это нужно понимать из контекста. Тему и/или тему-компонент администратор может установить без остановки работы сайта, а если вы являетесь клиентом Discourse, вы также можете добавлять их. (список) Также см.: Руководство для начинающих по использованию тем Discourse -
Плагин использует Ruby и может выполнять практически любые задачи. Если вы клиент Discourse, у вас есть ограниченный набор разрешённых плагинов для активации. Однако если вы размещаете Discourse самостоятельно, вы можете добавить любые плагины, но будьте осторожны: я вижу множество сообщений о том, что кастомные плагины ломают сайт при обновлении. При активации плагины также не требуют перезапуска; возможно, перезапуск потребуется только при первой установке. Другие могут уточнить, так как мой опыт работы с плагинами ограничивается их активацией через админ-меню. (список) Также см.: Руководство для начинающих по созданию плагинов Discourse — Часть 1
-
Я не разрабатывал плагины, поэтому предполагаю, что вы имеете в виду Ruby-модуль Discourse API. См.: Use the Discourse API ruby gem
-
Также существует API, которое включает вебхуки и обычно используется с помощью curl или другого языка программирования. Это удобно, так как освобождает от необходимости использовать Ruby.
-
Хотя я тоже не углублялся в это, вы можете программировать на уровне базы данных PostgreSQL, но я не рекомендую это делать, если вы не обладаете очень высокими навыками и полной уверенностью в своих силах.
Надеюсь, это помогло.
РЕДАКТИРОВАНИЕ
Бонусный раунд, если вы хотите полностью погрузиться в разработку для Discourse.
См.: Как начать создавать вещи для Discourse, если вы новичок (как и я)