Claude CodeでNotionをCMSにしたブログを作る方法
ブログを作りました。Notionで記事を書くと、そのまま公開されるしくみです。この記事が1本目になります。
構成
- Notion: 記事を書く場所。「Blog Posts」というデータベースを作り、Title / Slug / Description / Tags / Status / Date のプロパティを持たせています
- Astro: 静的サイトジェネレーター。NotionのAPIから記事を取ってきて、HTMLを組み立てます
- Cloudflare Pages: できあがったHTMLを配信するホスティングサービスです
書く場所はNotionだけ。ふだんの記録がぜんぶNotionにあるので、書く場所を増やさないことを優先しました。
作り方
実装はClaude Codeに任せました。私がやったのは2つだけです。
- 「Notionで書いてそのまま公開できるブログにしたい」と構想を伝える
- NotionとCloudflareの設定画面でアクセストークン(外部ツールに操作を許可する鍵)を発行して渡す
あとはClaude Codeがデータベース設計からAstroのコード、Cloudflareへのデプロイまで進めてくれました。エラーが出ても自分で直していきます。
再現したい方も、この2つができれば大丈夫です。トークンの発行はNotionなら「コネクト」設定、Cloudflareなら「APIトークン」画面から。そこだけ自分の手でやる必要があります。
公開方法
公開も2ステップです。
- Notionで記事のStatusをPublishedに変える
- GitHubのActions画面で「Run workflow」ボタンを押す
ボタンを押すと、GitHub Actions(GitHubの自動実行サービス)がNotionから記事を取得して、ビルドと公開までやってくれます。反映までは1〜2分。スマホのGitHubアプリからも押せるので、外出先でも公開できます。
本当はStatusを変えたら自動で公開されるのが理想です。Notion Workerとか。無料の範囲では使えないので、このボタン1つだけ手動で残しています。使ってみると、これくらいは手動のほうが「公開した」実感があってちょうどよく感じています。
拍子抜けした話
正直、拍子抜けしました。構想を伝えて、鍵を渡して、それでもう動いている。簡単にできすぎて、作った実感が薄いくらいです。
基盤はできたので、あとは書くだけ。作ったけどどうしよ。