FeatherCMS紹介
🪶 FeatherCMS — 羽のように軽い Headless CMS(ヘッドレス CMS)
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 タイトル+目次構成案 もご提案しますよ!