All posts

Cloudflare の EmDash で、エレベーター型ブログを作ってみた

地下から地上へ、スクロールでのぼっていくブログを EmDash で作りました。ドアが開いて、チンと鳴ります。

地下6階へ、ようこそ

このサイトは、下から上へスクロールしてのぼっていくブログです。
新しい記事ほど地上に近く、古い記事ほど深い階に眠っています。いまあなたがいるのは、いちばん深い地下6階です。

遊び用に取ったドメインで「なにか面白いものを載せたい」と考えていたところ、Cloudflare から新しい CMS「EmDash」が出ていたので、試しに作ってみることにしました。

EmDash ってなに?

EmDash は、Astro というフレームワークで動く CMS です。Cloudflare の上にそのまま載せられます。

  • 記事のデータ:D1(Cloudflare のデータベース)
  • 画像:R2(Cloudflare のストレージ)
  • ログイン:パスキー(パスワードなし)

WordPress にたとえると、「テーマのファイル」は GitHub に置き、push すると自動で公開されます。「記事」は管理画面から直接データベースに書き込みます。テーマと記事の置き場所がはっきり分かれているのが特徴です。

エレベーターのしくみ

  • 1フロア=記事1本:最新の6本が B1〜B6 になり、1F がゴール(プロフィール)です。
  • 最深階からスタート:ページを開くと、まず B6 に着きます。
  • ドアが開く:フロアが画面に入ると、ステンレスのドアが左右に開きます。
  • 深いほど暗い:地下は暗く、地上に近づくほど明るくなります。1F には光が差し込みます。
  • 階数表示:右の操作盤にアンバー色の階数ランプがあります。
  • ピタッと止まる:スクロールを止めると、各フロアに吸い付きます。
  • 到着のチャイム:操作盤のスピーカーボタンをオンにすると、着くたびに「チン」と鳴ります。音のファイルは使わず、ブラウザの中で音を合成しています。

つまずいたところ

  • GitHub のアカウント違い:別のアカウントでログインしたままだったため、プライベートリポジトリが「not found」になりました。GitHub CLI(gh)でアカウントを追加して解決しました。
  • 日本語化で記事が消えかけた:Astro の言語設定を日本語にすると、EmDash が「日本語の記事だけ」を表示しようとして、既存の記事が出なくなります。今回は、表示の言語だけを日本語にする方法にしました。
  • 環境変数:Cloudflare のダッシュボードで設定した変数は、デプロイのたびに設定ファイルの内容で上書きされます。設定ファイル(wrangler.jsonc)にも書いておくのが安全です。

Claude と一緒に作りました

今回は、AI の Claude と相談しながら作りました。役割分担はこんな感じです。

  • わたし:「上にスクロールするエレベーター」というアイデア、見た目の確認、GitHub や Cloudflare の操作
  • Claude:トップページのコード、色や動きの調整、エラーの原因探し

Claude は、ブラウザで動く確認用のモックを自分で作って、ドアの開閉や階数表示をテストしてくれました。ただ、スピーカーから本当に「チン」と鳴ったかは、Claude には聞こえません。最初に鳴らなかったときも、「鳴らない」と伝えたら原因を見つけて直してくれました。

アイデアと確認は人間、手を動かすのは AI。 この分担だと、遊びのサイトでも、思ったより短い時間で形になりました。人間は任せきりにしないでなるべく読む、聞き返す、をするのが良いです。

さあ、上へ

ここから上の階には、新しい記事が並んでいます。
スクロールして、地上をめざしてみてください。

「こんなサイトを作ってみたい」という方は、1F の About からお気軽にどうぞ。

Discussion

No comments yet