DUICUO

Node.js をベースにした 14 個の無料のオープンソース CMS – プロジェクトを引き受け、収益を得て、必要に応じて変更します。

コンテンツ管理システム(CMS)は、オンラインコンテンツを公開するための統合型Web管理システムです。主にウェブサイトの構築、コンテンツの管理、公開に使用されます。この記事では、CMSの機能とアーキテクチャ、そしてNode.jsを用いてCMSを開発するメリットについて主に紹介します。また、厳選したオープンソースCMSプロジェクトをいくつかご紹介します。これらのプロジェクトを通して、CMSを習得し、必要に応じて変更・活用していくことができます。

CMSでよく使われる機能モジュール

  • コンテンツの編集と管理: これには、記事、画像、ビデオなどのコンテンツの編集、公開、変更、削除が含まれます。
  • カテゴリ管理: ニュース、ブログ、製品、サービスなどのさまざまなカテゴリに従ってコンテンツを管理します。
  • ユーザー管理には、ユーザー登録、ログイン、アクセス制御などの機能が含まれます。
  • テンプレート管理: さまざまなテンプレートが提供されており、ユーザーはニーズに応じて選択して変更できます。
  • SEO 最適化: これには、タイトル、キーワード、説明などの SEO 設定が含まれます。
  • サイトの統計と分析: ウェブサイトのトラフィック、ソース、人気記事、その他のデータに関する統計および分析機能を提供します。
  • 多言語サポート: 複数の言語でのコンテンツの公開と管理をサポートします。
  • セキュリティ管理には、ユーザー アクセス制御、データのバックアップ、SQL インジェクションの防止などのセキュリティ機能が含まれます。

さらに、特定の垂直シナリオでは、CMS は電子商取引、マルチメディア管理、オンライン支払いなどの機能も提供します。

CMSアーキテクチャ

CMSのコアアーキテクチャには、フロントエンドのコンテンツ表示管理機能と、バックエンドのコンテンツ作成・編集機能が含まれます。しかし、情報技術の発展に伴い、CMSのアーキテクチャは常に進化しています。

1. 従来のCMSアーキテクチャ

従来のCMSアーキテクチャ(スタンドアロン型または結合型CMSアーキテクチャと呼ばれることが多い)では、フロントエンドとバックエンドは密接に結合されています。従来のCMSアーキテクチャは、以下のコア要素で構成されています。

  • データベース: コンテンツとデジタル資産を保存するために使用されます。
  • コンテンツ管理プラットフォーム: コンテンツの作成に使用されます。
  • バックエンド アプリケーション: コンテンツ作成者と発行者は、その中でコンテンツ アーキテクチャを構築および設計します。
  • フロントエンドアプリケーション: 公開されたコンテンツを HTML ページに表示する

2. CMSアーキテクチャを分離する

分離型CMSアーキテクチャでは、フロントエンドとバックエンドは独立したシステムです。バックエンドはコンテンツの作成と保存を管理し、フロントエンドは様々なインターフェース(Web、ソーシャル、アプリケーション、IoTなど)を通じてユーザーにコンテンツを提供します。分離型CMSアーキテクチャは、以下のコア要素で構成されます。

  • データベース: コンテンツとデジタル資産を保存するためのバックエンド データベース。
  • バックエンドコンテンツ管理プラットフォーム
  • フロントエンドコンテンツ公開プラットフォーム
  • バックエンドのコンテンツ管理プラットフォームとフロントエンドのコンテンツ公開プラットフォームを接続するAPI

3. ヘッドレスCMSアーキテクチャ

ヘッドレスCMSアーキテクチャは、コンテンツの表示に事前定義されたフロントエンドテンプレートを使用しません。代わりに、バックエンドを介して複数のチャネル(Web、ソーシャル、モバイル、IoTなど)にコンテンツをプッシュし、各チャネルにおけるコンテンツの表示方法を管理します。ヘッドレスCMSアーキテクチャは、以下のコア要素で構成されています。

  • コンテンツとデジタル資産を保存するためのバックエンドデータベース
  • コンテンツ作成のためのバックエンドコンテンツ管理プラットフォーム
  • バックエンドのコンテンツ管理プラットフォームとフロントエンドのコンテンツ公開プラットフォームを接続するAPI

ヘッドレスCMSアーキテクチャは、本質的には分離型CMSアーキテクチャと同じように見えます。ただし、分離型CMSアーキテクチャでは、デフォルトのフロントエンドコンテンツ公開プラットフォームが使用されます。一方、ヘッドレスCMSアーキテクチャでは、必要なフロントエンドテクノロジーを自由に選択できます。フロントエンドシステムには、標準テンプレートや事前定義されたモジュール統合は提供されていません。

4. ハイブリッドCMSアーキテクチャ

ハイブリッド CMS アーキテクチャは、ヘッドレス CMS アーキテクチャの柔軟性と拡張性を API と組み合わせて、従来の CMS アーキテクチャが提供するパーソナライズされたコンテンツ表示およびコンテンツ分析機能を提供します。

4つのアーキテクチャにはそれぞれ長所と短所があり、具体的な選択と設計はインフラストラクチャ、機能要件、インターフェース要件などによって異なります。

Node.js ベースの CMS を開発する利点

CMS の開発に使用できる技術アーキテクチャと開発言語は多種多様ですが、Node.js を使用して CMS を開発すると、他の開発言語にはない次のような利点があります。

  • 開発が容易:Node.jsベースのCMS開発では、JavaScriptを使用します。JavaScriptは非常に柔軟で広く使用されている言語であり、学習しやすく、多くの開発者が使い慣れています。そのため、開発者はCMSを特定のニーズに合わせてカスタマイズしやすくなります。
  • 高速かつ安定:Node.jsは実行パフォーマンスと安定性の両方に優れています。Node.jsプログラムはV8エンジン上で実行され、JavaScriptを高速かつ安定的に解析・実行します。これにより、CMSは高い同時実行性と高速レスポンスの要件に対応できます。
  • コミュニティサポート:Node.jsは大規模で活発な開発者コミュニティを誇っています。つまり、Node.js CMSの機能を強化するための豊富なリソース、ライブラリ、プラグインが利用可能ということです。また、コミュニティはCMSを最新かつ安全な状態に保つためのサポートとアップデートも提供しています。
  • 開発効率:Node.jsのモジュール型アーキテクチャは非常に柔軟性が高く、開発者はコンテンツの作成と管理、データモデルの定義、ユーザー認証の処理、その他のタスクの効率的な実行を容易に行うことができます。また、豊富なJavaScriptライブラリの再利用も可能で、開発負荷を軽減し、開発効率を向上させます。

Node.js ベースのオープンソースの無料 CMS

Node.jsの機能、アーキテクチャ、そしてCMSでNode.jsが使用される理由を理解することは、この記事の副次的な内容に過ぎません。以下のコンテンツでは、Node.jsをベースにした優れたオープンソースおよび無料CMSプロジェクトをいくつかご紹介します。

1.ストラップ

GitHub (57.5K スター): https://github.com/strapi/strapi

Strapiは、高度なオープンソースのヘッドレスCMSアーキテクチャです。JavaScript/TypeScriptを使用して100%開発されており、完全なカスタマイズをサポートしています。

Strapiは、ユーザーフレンドリーな管理ダッシュボード、カスタマイズ可能なコンテンツタイプ、そしてRESTful APIを提供しており、開発者はコンテンツを簡単に定義・構造化できます。強力な機能と直感的なインターフェースを備えたStrapiは、コンテンツ駆動型アプリケーションの構築において人気の選択肢です。

機能的特徴:

  • コンテンツ タイプ ジェネレーターをサポート: フィールド、コンポーネント、動的領域を自由に使用して、いつでもどこでもページを作成できます。
  • メディアライブラリのサポート:画像、動画、音声、ドキュメントをメディアライブラリにアップロードできます。ユーザーはこれらのリソースを簡単に検索、編集、使用できます。
  • 国際化をサポート: i18n プラグインが含まれており、Strapi ユーザーは「ロケール」と呼ばれるさまざまな言語でローカライズされたコンテンツを作成、管理、配布できます。
  • ロールベースのアクセス制御: 管理者とエンドユーザーに対して無制限の数のカスタム ロールと権限を作成します。
  • GraphQL と REST をサポート: REST または GraphQL のいずれかを使用して API に接続することをサポートします。

2. ゴースト

GitHub (44.5K スター): https://github.com/TryGhost/Ghost

Ghostは、プロフェッショナル向けのオープンソースブログ公開プラットフォームです。カスタムテーマ、Markdown構文をサポートし、ブログ投稿の作成とフォーマットのための強力なエディタを備えています。そのパフォーマンスの高さで知られるGhostは、ブロガーやコンテンツクリエイターに人気です。

3.Wiki.js

GitHub (22.4K スター): https://github.com/Requarks/wiki

Wiki.jsは、Node.jsをベースに構築された、モダンで強力なWikiアプリケーションです。Wiki.jsを利用するチームは、共同でコンテンツを作成・編集し、情報をページやカテゴリに整理し、アクセスと権限を制御できます。Markdown構文、バージョン管理、検索機能、カスタマイズ可能なテーマをサポートしています。

4. ディレクトゥス

GitHub (23.9K スター): https://github.com/directus/directus

DirectusはJavaScriptベースのヘッドレスCMS(コンテンツ管理システム)です。ユーザーフレンドリーな管理インターフェース、柔軟なデータモデル、RESTful APIを備えており、開発者はコンテンツを容易に作成・管理できます。シンプルさと拡張性を重視しているため、Directusは最新かつ柔軟なコンテンツ管理システムの構築に広く利用されています。

Directusは2つの部分で構成されています: (1) DirectusデータベースAPI: アプリケーションを構築するためのREST API。 (2) Directus管理アプリ: APIとデジタル資産を管理、作成、制御するためのアプリケーション。

機能的特徴:

  • ユーザーフレンドリーなインターフェース
  • 使いやすい
  • カスタマイズ可能な開発
  • ポータブル
  • 複雑な関係(任意の 1 対 1、1 対多、多対多、カスタム関係)をサポートします。
  • 豊富な文書
  • モジュラー
  • 複数の言語をサポート
  • デジタル資産管理
  • 権限、ロール、グループなどの詳細オプションを使用してユーザーを管理します。
  • 収集と現場管理をサポート
  • Webhooks サポート マネージャー
  • アクティビティログ

5. 概要

GitHub (21.1K スター): https://github.com/outline/outline

Outlineは、無料のオープンソースWikiエンジンであり、チームコラボレーションのためのナレッジベースです。洗練されたインターフェースと、大規模チームのメンバー間での共同記事作成を支援する多数の機能を備えています。このシステムはNode.jsで記述されており、React UIフレームワークを採用しているため、Markdownをサポートするリッチエディタを備えています。Dockerでデプロイできます。

機能的特徴:

  • すっきりとしたユーザーインターフェース
  • 複数ユーザーコラボレーション機能
  • 階層型データ構造
  • 全文検索: 記事、下書き、アーカイブ、ゴミ箱、お気に入りを検索します。
  • テンプレート マネージャー: エディターが書き込みテンプレートを作成して再利用できるようにします。
  • 下書き、アーカイブ、および改訂をサポートします。
  • コレクション管理: 書籍、文書、マニュアルを整理するために使用されます。
  • リッチテキストエディター
  • スラッシュ コマンドは、/ と入力するだけで多数のエディター機能にすばやくアクセスできるような働きをします。スラッシュ コマンドを使用すると、スラッシュ "/" と入力するだけで多数のエディター機能にすばやくアクセスできます。
  • 広範な埋め込みマルチメディア サポート: アプリケーションでは、YouTube ビデオ、GitHub Gist コード スニペット、SoundCloud オーディオなど、さまざまなメディアを埋め込むことができます。
  • ダーク モードのサポート: オペレーティング システムのモードに応じてシステム スタイルを変更します。
  • バックリンクの自動作成と構築:この機能により、編集者はページ、セクション、コレクション間の内部リンクを気にする必要がなくなります。また、リンク付きのマニュアルやドキュメントのエクスポートにも役立ちます。
  • 広範なサービス統合: Outline は、Slack、Figma、Google Cloud、Zapier、Airtable などの多くのサービスを含む、すぐに使用できる統合機能を提供します。
  • 豊富な API セットを通じてカスタム統合が可能になります。
  • 多言語サポート:英語、ドイツ語、スペイン語、フランス語、中国語、韓国語など、13 の言語をサポートします。
  • RTL 右から左への言語のサポート: アラビア語、ペルシア語、ヘブライ語。
  • スタイルはカスタマイズ可能
  • Docker サポート: Docker をセットアップした後、Docker をサポートする任意のシステムにシステムをインストールします。
  • 組み込みの Slack サポート: Slack は多くのチームが選択するメッセージング アプリケーションであり、Outline 統合により生産性の向上、シームレスなコミュニケーション、生産的なディスカッションが保証されます。

6.ペイロード

GitHub(14.7K スター):https://github.com/payloadcms/payload

Payloadは、モダンなバックエンドと管理UIを構築するための最適な方法です。TypeScriptで開発され、完全にオープンソースです。Payloadは、アプリケーションフレームワークであると同時に、ヘッドレスCMSとしても機能します。

7. ティナCMS

GitHub (10.3K スター): https://github.com/tinacms/tinacms

Tina は、Markdown、MDX、JSON、YAML などをサポートするヘッドレス コンテンツ管理システムです。

Tinaは、GraphQL API経由でMarkdownコンテンツのクエリ、静的ページの生成、ドキュメントへのリンクをサポートしています。リアルタイムプレビュー機能を備えているため、Markdownファイルの編集が非常に直感的です。

8. キーストーン

GitHub (8.5K スター): https://github.com/keystonejs/keystone

Keystoneは、オープンソースのヘッドレスコンテンツ管理システム(CMS)Webアプリケーションフレームワークです。開発者に、動的なWebサイトを構築するための強力なツールと機能を提供します。

Keystoneを使えば、コンテンツの作成と管理、データモデルの定義、ユーザー認証の処理などを簡単に行うことができます。柔軟でカスタマイズ可能なアーキテクチャにより、ウェブサイトを特定のニーズに合わせてカスタマイズできます。

9.Webiny.js

GitHub (6.9K スター): https://github.com/webiny/webiny-js

WebinyはオープンソースのサーバーレスCMSです。ヘッドレスアーキテクチャを採用し、ページビルダー、フォームビルダー、ファイルマネージャーなどの機能を提供します。カスタマイズと拡張が容易です。

10. アポストロフィ CMS

GitHub (4.2K スター): https://github.com/apostrophecms/apostrophe

Apostropheは、Node.jsをベースにしたオープンソースのコンテンツ管理システム(CMS)です。ページ構成、ブログ投稿、イベント管理など、ウェブサイトのコンテンツを管理するための柔軟で直感的なインターフェースと機能を提供します。

Apostropheは、強力なコンテンツエディタ、バージョン管理、メディア管理、そして多言語サポートを提供します。また、カスタムテンプレートとテーマもサポートしており、開発者はユニークでダイナミックなウェブサイトを作成できます。

11. Total.js CMS

GitHub:

  • https://github.com/totaljs/framework
  • https://github.com/totaljs/cms

Total.jsはNode.jsをベースにしたWebアプリケーションフレームワークです。スケーラブルで高性能なWebアプリケーションを構築するための包括的なツールと機能を開発者に提供します。Total.jsはモジュール型のアーキテクチャ設計を採用しており、拡張とカスタマイズが容易です。主な機能としては、ルーティング、サーバーサイドの可視化、認証、データベース統合などが挙げられます。Total.js CMSは、Total.jsフレームワークをベースにしたCMSシステムです。

12. マイクロフィード

GitHub(3K スター): https://github.com/microfeed/microfeed

Microfeedは、Node.jsをベースにしたオープンソースのソーシャルサブスクリプション型マイクロサービスです。ユーザーは、Microfeedを利用することで、音声、動画、写真、ドキュメント、ブログ投稿、Web、RSS、JSON形式で出力されたURLなど、様々なコンテンツを簡単に公開できます。

13. ノードプレス

GitHub(1.3K スター):https://github.com/surmon-china/nodepress

NodePressは、Node.jsをベースにしたオープンソースのコンテンツ管理システム(CMS)です。ウェブサイトやブログの作成と管理のための強力でスケーラブルなプラットフォームを提供します。

NodePressは、ユーザー認証、コンテンツ公開、メディア管理、SEO最適化などの機能を提供します。さらに、柔軟なテーマ管理システムも備えているため、開発者はウェブサイトの外観と機能をカスタマイズできます。

NodePress はシンプルさと高いパフォーマンスが特徴で、効率的な Web アプリケーション開発者にとって最適な選択肢となります。

14. ファイアCMS

GitHub (1K スター): https://github.com/firecmsco/firecms

FireCMSはFireBaseをベースとしたヘッドレスCMSで、Firestoreとシームレスに統合され、CRUDビューを簡単に生成できます。幅広いユースケースに対応し、ビューの作成と変更を可能にします。FireCMSはデータ構造に厳しい制約を課さないため、あらゆるプロジェクトでスムーズなエクスペリエンスを提供します。