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