@EricGT さんの回答はすでに非常に良く説明されていますが、それに付け加える形で以下に補足します。
- テーマまたはテーマコンポーネントは、Discourse のフロントエンドである EmberJS アプリのあらゆる部分を修正する方法です。HTML や CSS のカスタマイズという単純なものから、新機能の追加という複雑なものまで多岐にわたります。テーマは、何か問題が発生してもより graceful(優雅)に対処できるため、何かうまくいかなくてもサイト全体がダウンするとは限りません。
- プラグインは主に Rails のサーバーサイドアプリに影響を与えますが、テーマのすべての機能と EmberJS アプリへの影響も兼ね備えています。ただし、より複雑です。プラグインの失敗は graceful ではない傾向があるため、テーマで実現できる場合はまずそこから始めることをお勧めします。ただし、カスタムルートが必要だったり、データを保存する必要がある場合は、プラグインが必須となります。
- pluginAPI は、クライアントサイドの API で、テーマやテーマコンポーネントが Discourse クライアントの特定の部分をより容易に修正するために使用できます。
サイトをカスタマイズする際は、まずテーマから始めるのが最善です。以下にいくつかの参考資料をご紹介します。
デザイナー向け Discourse テーマガイド
開発者向け Discourse テーマガイド
Discourse テーマの構築を始めるためのテーマクリエーターとテーマ CLI の使い方に関する初心者向けガイド