雑記更新 2026/8/81分で読めます

Cloudflare Workers で個人ブログを組み直した

記事は静的に、ユーザー操作は動的に。個人ブログを作り直すにあたり、この境界をはっきりさせました。

記事はGitで管理する

本文はMarkdown/MDXとしてGitHubへ保存します。編集画面にはPages CMSを使うため、管理画面のためだけにデータベースや常駐サーバーを持つ必要がありません。

公開時にはAstroがHTMLを生成します。検索エンジンもRSSリーダーも、JavaScriptを実行せずに本文を読めます。

動的データだけD1へ

匿名端末ごとのいいねとお問い合わせはD1へ保存します。画像はR2、閲覧イベントはWorkers Analytics Engineです。

役割の違うデータを、ひとつのDBへ無理に押し込まない構成にしました。

type Storage = {
  content: "Git";
  readerState: "D1";
  media: "R2";
  events: "Analytics Engine";
};

外部埋め込みはクリック後に

YouTubeなどの外部コンテンツは、ページを開いた時点では読み込みません。
読者が表示を選んだ時だけ接続する設計です。