FeatherCMS紹介

🪶 FeatherCMS — 羽のように軽い Headless CMS(ヘッドレス CMS)

github

feather-cms は、超軽量でモダンな Headless CMS を目指したオープンソースプロジェクトです。 バックエンドには Bun + Hono + Drizzle といった最新スタックを採用し、Cloudflare Workers / D1 / R2 などのエッジ環境に最適化されています。


📌 FeatherCMS ってどんな CMS?

FeatherCMS は、軽量で高速、クラウドネイティブに対応した Headless CMS です。 単なる API サーバーにとどまらず、管理画面 + 静的サイト生成(SSG) までを包括した構成で提供されています。

💡 特徴的なポイント:

  • 超軽量構成(Bun + Hono + Drizzle)
  • 🌐 Edge Native:Cloudflare Workers / D1 / R2 に対応
  • 🔐 複数認証方式(Google OAuth / Cloudflare Access / Password / 開発モード)
  • 📝 Markdown / WYSIWYG エディタ 対応
  • 🖼️ メディアライブラリ(ドラッグ&ドロップ、フォルダ管理、タグ管理)
  • 🎨 テーマ切替(8 種類のカラーテーマ)
  • 📄 SSG 機能(Liquid テンプレートによる静的サイト生成)
  • 🔌 プラグイン拡張(フックベース)
  • 🌍 i18n(多言語対応)(日本語 / 英語)

🧱 プロジェクトの構成

FeatherCMS の主要な構造:

feathercms/
├── src/                # サーバーエントリポイント
├── packages/
│   ├── api/            # CMS API(Hono)
│   ├── admin/          # 管理画面(React SPA)
│   └── ssg/            # SSG(静的サイト生成)
├── shared/             # 共通モジュール
├── templates/          # Liquid SSG テンプレート
└── public/             # 静的ファイル

🚀 クイックスタート(ローカルで立ち上げる)

1. リポジトリをクローン

git clone https://github.com/ugnoguchigxp/feather-cms.git
cd feather-cms
bun install

2. 環境変数を設定

cp .env.example .env

開発時だけ認証をスキップする場合:

AUTH_PROVIDER=dev
SESSION_SECRET=dev-secret

3. 起動

bun run dev
  • 管理画面:http://localhost:3000/admin
  • API:http://localhost:3000/api
  • 公開ブログ:http://localhost:3000

🔐 認証方式の選択肢

FeatherCMS は複数の認証方式を柔軟に選べます:

認証方式 用途
dev ローカル開発用(本番禁止)
Google OAuth Google アカウントでのログイン
Cloudflare Access Zero Trust チーム認証
Password パスワードベースの管理者認証

🧠 API とコンテンツ管理

FeatherCMS は Headless CMS として REST API を提供し、以下のようなエンドポイントを備えています:

📄 ポスト関連

メソッド Path 説明
GET /api/posts 全記事取得
GET /api/posts/published 公開記事のみ
GET /api/posts/:id ID で取得
GET /api/posts/slug/:slug スラッグで取得
POST /api/posts 記事作成
PUT /api/posts/:id 記事更新
DELETE /api/posts/:id 記事削除

📦 アセット

  • ファイル一覧、アップロード、削除、メタデータ更新に対応

その他にも、設定(Settings)コメント(Comments) といったリソースも管理できます。


🔌 プラグイン & フック

FeatherCMS は 拡張性を重視しており、createCMS() でフックを登録することで、次のようなタイミングで処理を差し込めます:

  • beforeSave(保存前)
  • afterSave(保存後)
  • afterPublish(公開後)
  • onDelete(削除時)

例えば SSG 生成を自動化したり、通知トリガーを組み込んだりできます。


🛠 開発ツールとコマンド

FeatherCMS には開発や運用を支える様々なコマンドが用意されています:

コマンド 用途
bun run dev 開発サーバー起動
bun run build:client 管理画面ビルド
bun run build:blog SSG 生成
bun run build 本番ビルド
bun run test テスト実行
bun run test:coverage カバレッジ付きテスト
bun run db:migrate DB マイグレーション
bun run seed シードデータ投入

☁️ Cloudflare へのデプロイ

FeatherCMS は Cloudflare Workers + Pages アーキテクチャに最適化されています:

Workers (API)      Pages (Static SSG)
 /api/*            /*.html
 D1 + R2 storage   公開サイト生成

API バンドルは minify 後 約 500KB 程度で、Workers の制限内で軽快に動作します。


🎨 管理画面のテーマ切替

管理画面は 8 種類のカラー テーマからワンクリックでデザイン変更が可能:

  • デフォルト(インディゴ)
  • オーシャン(ブルー)
  • フォレスト(グリーン)
  • サンセット(オレンジ)
  • ラベンダー(パープル)
  • ローズ(ピンク)
  • ミッドナイト(ダーク)
  • チェリーブロッサム(桜)

🧾 まとめ

feather-cms は、Bun + Hono + Drizzle を中核としたモダンで軽量な Headless CMS です。 API、管理画面、SSG、認証、メディア管理、プラグイン拡張までを統合し、クラウド環境やエッジ向けのコンテンツプラットフォームとして活用できます。


必要であれば ブログ向け SEO タイトル+目次構成案 もご提案しますよ!