ブログ

コメント機能実装の完全ガイド

よく相談される静的 WordPress サイトに関する質問の1つに、コメント機能は動くのかどうかというものがあります。ネイティブな WordPress のコメントシステムは動作しないものの、数多ある代替があります。

このリストにおいて、次のプロジェクトに使えるであろうオプションを取り上げたいと思います。そのプロジェクトが Shifter で WordPress を構築するのか、GatsbyJS か、はたまた React であってもこのリストは有用でしょう。

Talk by the Coral Project

Talk

良質な対話のためのオープソースノコメントプラットフォーム

含まれる機能:

  • 会話内でのジャーナリストの特定
  • うるさいメッセージのミュート機能
  • 他のコメンターの参加状況
  • プライバシー管理
  • ダウンロード履歴
  • 議論の共有
  • ソート機能 (返信数順/ライク数順/新着順)
  • ジャーナリストとの交流時の通知
  • 新着コメントの容易な確認
  • オフトピックなコメントの特定とフィルタ
  • プラグインディレクトリ
  • Slack、WordPress、その他の静的サイトでの動作

Talk はCoral Project によって作成されたコメントシステムです。Mozilla ファウンデーション、ニューヨークタイムズ、ワシントンポストとのコラボレーションで誕生したという面白い経歴を持っています。

Talk はオープンソースで利用者が自身で設置するタイプの、ニュースルーム向けコメントシステムです。Talk のゴールは公共の信頼を培うことで、私たちも Talk が出だしのいいスタートを切っていることに同意します。

Talk の優れているところは、組み込まれたツールのエコシステムです。Talk の基本機能を拡張する方法として、プラグインディレクトリ機能を有しています。インテグレーションや機能のカスタマイズが必要な場合は API を使って開発をするといいでしょう。

Talk はオープンソースで、ユーザ自身が設置するタイプとして設計されているものの、Talk-as-a-service というオプションサービスも提供しています。ただ、料金は未発表となっているので、相談をしてみてください。

Coral Project は正式に Vox Media の傘下となっています。このような巨大なメディアネットワークサイトが Coral Project のプロダクトを採用しているなら、プロジェクトが近々に消滅するということはないと思っていいでしょう。プラグインディレクトリの成長や信頼できるコメントシステムの需要の高まりから、 Talk はプライバシーが懸念されるようになった場合には、それに応えられるコメントシステムを提供してくれる場となるでしょう。

開発者なら、是非とも Coral Project のGitHub ページ を見てみてください。現在進行形のプロジェクトが多数あります。

Schnack!

Schnack は JavaScript で記述されたオープンソースのコメントシステムです。

https://github.com/schn4ck/schnack

  • トータルのサイズはおおよそ 8KB という超軽量仕様
  • オープンソースかつ、ユーザで設置するタイプ
  • 広告無し、トラッキングコードも無し
  • モデレータ用のツールも提供
  • OAuth 認証リクエストを採用。
  • Google、GitHub、Facebook、Twitter といった OAuth 互換のサービスが使用可能
  • Disqus や WordPress XML コメントからのマイグレーション が可能

Schnack は JavaScriptで構築されたユーザ設置型かつオープンソースのコメントシステムです。Node 上で動作し、また、Docker コンテナとして本番またはローカルでのテストも可能です。

Schnack を採用する際、ユーザが自身で設置する必要があるというところがの難点になるでしょう。インテグレーションが準備されている Disqus のようなコメントサービスのプロバイダとは違って、Schnack を設置するホスティングが別途必要になります。セルフホスティングのオプションといえば、さほど驚くことではないものの、考慮には値します。

Schnack が Docker にフィットするように思ってくれて、Docker 版を提供してくれるのなら Amazon の Elastic Container Service である AWS Fargate やその類似サービスに展開できるかもしれません。

詳細は プロダクトサイトGitHub ページをご参照ください。

Remark42

Remark42 is a self-hosted, lightweight, and simple (yet functional) commenting system, which doesn’t spy on users.
Remark 42 はユーザ設置型で、軽量かつ機能的でシンプルなコメントシステムです。ユーザをスパイすることもありません。

https://remark42.com/

  • Google、 Facebook、 Github や Yandex のソーシャルログインをサポート
  • 匿名アクセスのオプション
  • 標準・ツリー型表示両方で多階層コメントをサポート
  • Disqus と WordPress ノコメントをインポートをサポート
  • エディターメニュー付き Markdown をサポート
  • コメントによるコメントの削除とユーザのブロック
  • コメントへの投票・ピン留め、承認機能
  • コメントの並べ替え
  • ドラッグ&ドロップでの画像アップロード
  • 最新のコメント、クロスポストの抽出
  • コメントと各投稿に対する RSS フィード
  • テレグラフ通知
  • JSON 形式でのデータ自動バックアップ
  • 1ファイル全データが埋め込まれるため、外部のデータベース不要
  • フル Docker 化、1コマンドでデプロイが可能
  • 自己実行形式ファイルのため、Linux、Windows、macOS への直接デプロイが可能。
  • ライトテーマとダークテーマの、クリーン、軽量、カスタマイズ可能な UI
  • シングルインスタンスからマルチサイトモード への移行
  • 自動 SSL インテグレーション (直接または Nginx-le)
  • プライバシー保護に意欲的

Remark42 は Docker 上で実行できるよう設計されたユーザ設置型のオープンソースなコメントシステムです。Docker コンテナ上で動作するよう設計されているものの、Docker がなくとも動作するようコンパイルされています。Remark42 の RSS 機能は、訪問者をエンゲージし続けるニュースとメディア組織にとって便利な機能になるでしょう。Go言語で記述されているようであり、GitHub 上で活動しています。

Schnack のように、Google、Facebook、GitHub などと OAuth ログインでのインテグレーションを提供しています。Disqus と WordPress のコメントのマイグレーションオプションも含まれています。Remark42 の RSS 機能は、訪問者をエンゲージし続けるニュースとメディア組織にとって便利な機能になるでしょう。Go言語で記述されているようであり、GitHub 上で活動しています。

Lambda Comments

Lambda Comments は AWS にデプロイ可能なユーザ設置型のブログコメントシステムです。

https://jimpick.com/2016/05/05/introducing-lambda-comments/

  • オープンソースかつ、ユーザ設置型
  • AWS 用に設計
  • ローコスト
  • 完全にサーバレス
  • Node で記述
  • Lambda (当然)、 DynamoDB、 S3、 API Gateway 上で動作
  • CloudWatch Logs とのインテグレーション
  • AKISMET や Slackとのインテグレーションも可能

Lambda Comments は AWS Lambda を使用するコメントシステムです。他の候補と比べてもパッとはしないものの、個人的に一番気に入っているシステムです。コメントシステムに Lambda を採用するというところがなかなかいいです。料金モデル、技術面、低コスト、すべてがちょうどいい。

AWS の料金体制が従量制のため、Lambda Comments の月額利用料金を明確には算出できません。しかしながら、作者は月額1ドル以下だろうと見積もっています。もちろん利用状況により上下します。

今回取り上げている他のシステムと比較して、OAuth のサポートや Disqus 、WordPress からのマイグレーション機能が不足していることは否めません。新規にプロジェクトを立ち上げる場合、この点は問題にはならないでしょう。UI や管理画面といった他の機能を気にかけるでしょうから。多くの AWS ユーザに取って十分な機能を持つ DynamoDB を使って UI を構築している限り、問題点を見つけることはないでしょう。

公平な観点から忠告すると、最後のコミットはおよそ3年前です。アクティブなプロジェクトではありません。ただ、動作しないかというとそれもまた違います。このプロジェクトがサーバレスフレームワークへ移植され、 最新版の Node で使えることが簡単に分かりました。

GitHub ページ へアクセスして、Lambda Comments を試してみてください。

HashOver

HashOver は PHP で書かれた、ユーザ設置型のオープンソースなコメントシステムです。
https://github.com/jacobwb/hashover

  • コメントとライクの RSS フィードをサポート
  • URL とパーマリンクの自動生成
  • 匿名投稿が許可されている
  • ビジュアルテーマの適用とカスタマイズ可能な CSS をサポート

HashOver は PHP で書かれたオープンソースかつ自身で設置するタイプのコメントシステムです。コメントスパムとの戦いをローカルで行えるオプションがあります。パフォーマンスの向上のためにコメントの読み込みを非同期にもできます。

PHP で書かれたセルフホストタイプのこのシステムは、実行環境を用意しなくてはなりません。 AWS Lightsail がその候補となるものの、PHP さえサポートされている環境であればどこにでも設置が可能です。

Isso

https://posativ.org/isso/

Isso は Disqus によく似た軽量なコメントシステムです。

  • Python で書かれています
  • DB に SQLite を採用しています
  • 単一の JavaScript ファイルに埋め込みが可能です
  • Disqus と WordPress からのマイグレーションをサポートしています
  • Markdown が利用可能
  • モデレータ機能が充実

Isso は開発者寄りなセルフホストタイプのコメントシステムです。小さく、早く、そしてほとんどのホスティング環境に対応可能です。

Python に慣れ親しんでいないと使いづらいという点が導入に戸惑いを感じさせるかもしれません。ただ、多くの PHP を採用するプロジェクト比較して、 Python は簡単に見えるでしょう。テーマやプラグインなどを開発している WordPress の開発者で Python が未経験なら、是非とも試すべきでしょう。Python は Python を使う人からは大変好かれている言語です。

CommentBox.io

厄介な手間がかからない埋め込み、使う喜び、楽ちんなモデレート作業を実現してくれるマネージドタイプのコメントシステムです。

https://commentbox.io

  • フリーミアム
  • 無料版にはコメントの上限がある
  • 有料版ではコメントは無制限になる
  • モデレータ向けの充実な機能
  • フリートライアルではクレジットカードの登録が不要
  • WordPress と静的サイトでの動作可能

CommentBox はマネージドタイプのコメントソリューションです。謳い文句は「広告無し・トラッキング無し・コメントだけ」です。マネージドタイプのソリューションのため、データすべてをコントロールできるわけではありません。しかし、いつでもデータのエクスポートができる機能が備わっています。

CommentBox は Disqus の代替となるサービスではないかと思っています。完全なホスティングソリューションのため、わずかな時間も記述的な知識も必要とせず開設できます。トラッカーや広告、サードパーティへのデータ共有などを行っていません。この当りが自身でコメントシステムをホストする際の悩みの種です。データを安全に保持し、第三者に提供しないと宣言するプロバイダーを利用するのは試す価値があるでしょう

Disqus

Disqus はウェブサイトへのコメントシステムを提供するサービスです。

https://disqus.com
  • 機能の充実したダッシュボード
  • モデレータ向けのツール
  • サイトを縦断するコメントネットワーク
  • 巨大なサイトでも軽量に動作

WordPress のコミュニティにとって Disqus は頼りになる代替コメントシステムです。WordPress のコメントからのマイグレーションを提供していることも、このような評価になる大きな要因となっています。WordPress 標準のコメント機能を無効化する前にコメントを移行するための WordPress のプラグインも提供しています。Shifter で Disqus を使う際の設定方法をサポートドキュメントに掲載しています。

この人気は多くの検証の上ででき上がったものです。過去数年、セキュリティの調査グループはいくつかのセキュリティの抜け穴を報告しています。セキュリティはいったん置いておいて、今回挙げているどのプロジェクト・サービスのほとんどよりも数多くの機能を提供しています。プライバシー、自治性、データの権限が最優先事項でしょうし、常にピッタリはまるかは分かりません。ですが、技術は常に更新されますし、リサーチも続けていくことをお勧めします。

最後に

ここで挙げたサービスやプロダクトがすべてではありません。更に多くのコメントシステムを取りあげて追加してきたいと思っています。テストができ次第、別な記事でフィードバックなどをご紹介していきます。WordPress を使っていてコメントシステムが必要なら、慣れているツールを使ったできる限りスムーズな移行をお手伝いしたいと思います。コーディングする必要が内ケースであったとしても、です。

1つか2つか使ってみてフィードバックがあればぜひ教えてください。