すべての事例

Birkly CMS

コンテンツ管理システム

Birklyは、このサイトを含め、私たちが制作するすべてのサイトを支えるコンテンツ管理システムです。コンテンツは標準ではJSONファイルとして保存され、データベースも選択できます。コアは実行時の依存関係なしに一般的なPHPホスティングで動き、どのAIも固有の役割と権限を持つユーザーとして扱われます。現在はアルファ版で、リリース時には無料のオープンソースになります。

クライアント
自社プロダクト
年
2025年〜
サービス
Birkly & プラグインウェブ開発
使用技術
Birkly
ウェブサイト
サイトを見る

出発点

シンプルで、柔軟で、フェア

Birklyは、ひとつの不満から生まれました。試したどのCMSにも、私たちが求める組み合わせがありませんでした。すべてを理解できるほどシンプルで、どんなウェブサイトにも対応できるほど柔軟で、それを使ってサイトを作り運営する人にとってフェアであること。

多くのシステムは、便利さと引き換えに多くを求めます。データベースサーバー、次のアップデートで壊れる長い依存関係の連鎖、もう誰も保守していないプラグイン。そのひとつひとつが複雑さを増やし、外部から取り込むパッケージはどれもセキュリティリスクであり、自分では管理できないサプライチェーンの一部になります。

そこで私たちは別の土台を選びました。実績のあるシンプルなウェブ技術を使い、実行時の依存関係を一切持たないこと。Composerもnpmもビルド工程もありません。信頼すべきコードが少なく、壊れるものが少なく、更新するものも少ない。ごく一般的なPHPホスティングで、10年後も動き続けることを目指したアーキテクチャです。

アーキテクチャ

テキストエディタで開けるコンテンツ

Birklyは標準で、すべてのコレクション、エントリー、設定をJSONとしてディスクに保存します。ブログ記事はひとつのファイルで、そのコメントは隣のフォルダにあるファイルです。用意したり移行したり復元したりするものは何もありません。バックアップはフォルダのコピーで、サイトの引っ越しはそのフォルダを移すことです。データベースを使いたいプロジェクトは、代わりにデータベースを有効にすることもできます。

保存の仕組みの上には、構造化されたコンテンツモデルがあります。

  • コレクションは、事例、商品、チームメンバーなど繰り返すものを表し、テキスト、Markdown、画像、ギャラリー、タグ、リレーション、地図などの型付きフィールドを持ちます。
  • サブコレクションは、この事例の章やページのセクションのように、ひとつのエントリーに属するものを収めます。
  • 言語は同じエントリーの中に並んで存在するので、翻訳が別のコピーとしてずれていくことはありません。

サイトそのものは、2つの場所に置けます。テンプレート、スタイル、スクリプトをBirklyの中でホストし、Gitリポジトリに接続したプロジェクトフォルダで、ほかのコードと同じようにプッシュ、プル、レビューする方法。あるいは、自前のサーバーや独自の技術スタックなど、まったく別の場所に置き、クライアントスクリプトやAPIを通じて安全にBirklyと接続する方法です。

ノートパソコンに表示されたBirklyの管理画面。コレクションのエントリー一覧
管理画面のコレクション。どのエントリーも同じスキーマに従います。

管理画面

書く人のために

編集者がJSONを目にすることはありません。目にするのは落ち着いたウェブの管理画面です。片側にコレクション、一覧にエントリー、そしてスキーマから組み立てられたフォーム。事例ならタイトル、導入文、章だけを求め、それ以外は何も聞きません。

日々の作業はプラグインなしでこなせます。メディアライブラリにはフォルダ、代替テキスト、フォーカルポイントがあり、どの画面サイズでも写真は被写体を中心に切り抜かれます。保存のたびにバージョンが残り、比較したり復元したりできます。権限によって誰が公開できるかが決まり、任意のレビュー手順を入れれば、公開前に誰かが変更を確認できます。

デザインに費やした時間の大半はここで、その多くは削ることに使いました。CMSを使うのは、本当はほかのことをしていたい人たちです。求める判断が少ないほど、ウェブサイトは良くなります。

スマートフォンに表示されたBirklyの管理画面と、背後のノートパソコンに開かれた同じ管理画面
エントリーの編集。管理画面はスマートフォンでも使えます。

テンプレート

文章のように読めるテンプレート

Birklyのサイトは、小さなテンプレート言語を含んだごく普通のHTMLです。ループや参照は、for each entry in 'cases', ordered by order や from 'site elements' get entry 'logo' のように、ほとんど普通の英語として読めます。

ページはサーバーで生成されるので、訪問者も検索エンジンも完成したHTMLを受け取ります。ブラウザの小さなスクリプトが、フォームや動的なコンテンツを支えます。格闘するテーマ層も、覚えるべきフレームワークもありません。HTMLが書ければBirklyでサイトを作れますし、マークアップは書いたとおりのままです。

そのため、既存のデザインにもよく合います。このサイトももとは手作りの静的ページでした。Birklyへの移行で行ったのは、ページの作り直しではなく、固定のテキストをテンプレートタグに置き換えることでした。

AI

AIのために、ブレーキ付きで

Birklyは、ウェブサイトの仕事の一部をAIが担う時代のために設計されていて、自分のAIを複数の方法で持ち込めます。OpenAI、Anthropic、Google、OpenRouter、Ollamaで動かすローカルモデル、独自のエンドポイントなどのAPIキーを追加すれば、追加のサブスクリプションなしにBirkly内蔵のAIチャットで使えます。あるいはMCPで接続して、Claude、ChatGPT、Cursorなど、普段使っているAIチャットにBirklyのツールを持ち込むこともできます。そこでアシスタントはコンテンツモデルを読み、エントリーを書き、メディアをアップロードし、テンプレートを編集できます。

どちらの方法でも、AIはBirklyの中で固有の役割と権限を持つ本物のユーザーです。だから管理者は、AIに何をさせて何をさせないかを常に正確に決められます。その操作は、人が承認するまで承認待ちのキューで待機させることもできます。アシスタントにはBirklyの仕組みを説明するプレイブックが渡されるので、推測する必要はありません。このウェブサイトも、そうやって一歩ずつ承認を受けながらBirklyへ移行しました。

同じ考え方は外にも向いています。オプションの Agent Guide は、AI検索やアシスタントに向けてサイトをわかりやすく構造化して説明し、WebMCP は訪問者のブラウザエージェントに、ページを読み取らせる代わりに、問い合わせフォームの送信といったいくつかの安全な操作を提供できます。

プラグイン

小さなコアと、必要なときのプラグイン

一般的なウェブサイトに必要なものは、すべてコアに含まれています。それ以外は、必要なときにだけインストールするプラグインとしてBirkly Hubから提供されます。基本のプラグインはBirkly & Other Thingsが開発しています。

  • Commerce:商品、サービス、サブスクリプションの販売
  • Events:予約とカレンダー(近日公開)
  • User Management:会員エリア、ログイン、コミュニティ
  • Automation:コンテンツの変更をきっかけに動くワークフローとメール

コアと組み合わせれば、ポートフォリオやショップから、予約サイト、Birkly Clubのような会員コミュニティまで、ほぼどんなウェブプロジェクトやアプリでもつくれます。プラグインもコアと同じく実行時の依存関係を持たず、必要な権限を明示的に求めます。そのため、プラグインを入れたことでシステムの他の部分ができることが知らないうちに変わることはありません。

Birklyはまだアルファ版で、先行アクセスは段階的に開かれています。リリース時には無料のオープンソースになり、ドキュメントはロードマップではなく、現在提供されているシステムをそのまま説明しています。

成果

Birklyはこのサイト、birkly.io、kekaba.comを動かしています。まだアルファ版の初期段階ですが、土台はできています。覚えやすく、PHPが動く場所ならどこでもホストでき、最後のファイルまで理解できること。そしてリリース時にはオープンソースになるので、誰も囲い込まれません。私たち自身にも。

サイトを見る

ほかの事例