[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"tag-articles-インフラ":3},[4,9,15,19,24],{"title":5,"description":6,"path":7,"publishedAt":8,"updatedAt":8},"R2カスタムドメインが不要な理由（OG画像配信構成）","OG画像配信でR2バケットにカスタムドメインを設定する必要がない理由の解説","/r2-custom-domain-not-needed","2026-01-01T00:00:00.000Z",{"title":10,"description":11,"path":12,"publishedAt":13,"updatedAt":14},"2026年2月21日の開発日記 - ダッシュボードを作って壊し、1ドメイン統合型へ舵を切った日","Better Auth + Google OAuthの本番投入、問題集機能6フェーズ拡張、独立型ダッシュボードの設計・実装・デプロイを経て同日中に1ドメイン統合型への方針転換を決断。メール環境のゼロコスト構築、テストスイート全パスまで。","/2026-02-21-diary","2026-02-21T00:00:00.000Z",null,{"title":16,"description":17,"path":18,"publishedAt":13,"updatedAt":14},"独自ドメインメール環境をCloudflare + Brevoで無料構築した話","Cloudflare Email RoutingとBrevoを組み合わせて、Google Workspace不要の独自ドメインメール送受信環境を構築。フッター・法的ページの整備、ドメイン戦略の整理まで。","/infrastructure-email-domain-setup-2026-02-21",{"title":20,"description":21,"path":22,"publishedAt":23,"updatedAt":14},"音声ファイル管理基盤の整備 - Git除外・R2配信・dev middleware構築","152個の音声ファイルをpublic/audioからaudio-assets/に移行し、.gitignoreで除外。dev server middlewareとuseAudioUrl composableで開発・本番のURL解決を一元化。Cloudflare R2へのアップロードとデプロイ手順の文書化まで。","/audio-asset-management","2026-03-16T00:00:00.000Z",{"title":25,"description":26,"path":27,"publishedAt":28,"updatedAt":14},"Cloudflare PagesとWorkers Static Assetsの違い、エッジキャッシュが効く仕組み","Cloudflare PagesとWorkers Static Assetsの関係、静的サイトでオリジンが叩かれない仕組み、GitHub Actionsとデプロイの関係を、mdx-playgroundの実際の設定を例に整理する","/cloudflare-pages-workers-static-assets","2026-07-22T00:00:00.000Z",1785654932042]