<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cloudflare on じるラボ</title>
    <link>https://jiru-labo.com/tags/cloudflare/</link>
    <description>Recent content in Cloudflare on じるラボ</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Mon, 15 Jun 2026 00:00:00 +0900</lastBuildDate>
    <atom:link href="https://jiru-labo.com/tags/cloudflare/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>家計簿アプリを作る #15：再デプロイと最新月の自動選択</title>
      <link>https://jiru-labo.com/posts/kakeibo-15-deploy2/</link>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-15-deploy2/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第15回です。ここまでの実装を Cloudflare Pages に再デプロイし、あわせてログイン直後に最新月が自動選択される UX 改善を実装します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #9：Cloudflare Pages へのデプロイ</title>
      <link>https://jiru-labo.com/posts/kakeibo-09-deploy/</link>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-09-deploy/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第9回です。今回は Cloudflare Pages へのデプロイを行います。ハマりポイントが多かったので詳しくまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #8：ログイン・ログアウトの実装</title>
      <link>https://jiru-labo.com/posts/kakeibo-08-auth-login/</link>
      <pubDate>Mon, 08 Jun 2026 01:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-08-auth-login/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第8回（後編）です。前回に引き続き、ログイン・ログアウトを実装します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #7：Better Auth のセットアップ &#43; サインアップ実装</title>
      <link>https://jiru-labo.com/posts/kakeibo-07-auth-setup/</link>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-07-auth-setup/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第7回（前編）です。今回は Better Auth を使った認証の土台を作り、サインアップまでを実装します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #6：収支の編集を実装する</title>
      <link>https://jiru-labo.com/posts/kakeibo-06-edit/</link>
      <pubDate>Wed, 03 Jun 2026 02:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-06-edit/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第6回です。今回は登録済みの収支データを編集できるようにします。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #5：収支の削除を実装する</title>
      <link>https://jiru-labo.com/posts/kakeibo-05-delete/</link>
      <pubDate>Wed, 03 Jun 2026 01:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-05-delete/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第5回です。今回は一覧をテーブル表示に変更し、各行に削除ボタンを追加します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #4：収支の登録フォームを実装する</title>
      <link>https://jiru-labo.com/posts/kakeibo-04-form/</link>
      <pubDate>Wed, 03 Jun 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-04-form/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第4回です。今回は SvelteKit の Form Actions を使って収支の登録フォームを実装します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #3：D1 への接続 &#43; 収支一覧の表示</title>
      <link>https://jiru-labo.com/posts/kakeibo-03-fetch/</link>
      <pubDate>Tue, 02 Jun 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-03-fetch/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第3回です。今回は Drizzle ORM 経由で D1 に接続し、収支データをトップページに一覧表示するところまでを実装しました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #2：Drizzle でスキーマ設計 &#43; D1 マイグレーション</title>
      <link>https://jiru-labo.com/posts/kakeibo-02-schema/</link>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-02-schema/</guid>
      <description>&lt;p&gt;家計簿アプリ作成シリーズの第2回です。今回は Drizzle ORM でスキーマを定義し、Cloudflare D1 にマイグレーションを適用するところまでを記録します。ハマりポイントが多かったので詳しくまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>家計簿アプリを作る #1：SvelteKit × Cloudflare D1 × Drizzle の環境構築</title>
      <link>https://jiru-labo.com/posts/kakeibo-01-setup/</link>
      <pubDate>Sun, 31 May 2026 01:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/kakeibo-01-setup/</guid>
      <description>&lt;p&gt;SvelteKit + Cloudflare Workers（D1 + Drizzle ORM）を使って家計簿アプリを作っていきます。この記事はその第1回で、プロジェクトの環境構築をまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>GitHub ActionsでSvelteKitをCloudflare Workersに自動デプロイした話</title>
      <link>https://jiru-labo.com/posts/github-actions-cloudflare/</link>
      <pubDate>Sun, 31 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/github-actions-cloudflare/</guid>
      <description>&lt;p&gt;GitHub Actionsを使うと、mainブランチへのプッシュで自動的にCloudflare Workersへデプロイできます。手動での &lt;code&gt;wrangler deploy&lt;/code&gt; が不要になります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Drizzle ORMのリレーションでテーブルを結合して取得した話</title>
      <link>https://jiru-labo.com/posts/drizzle-relations/</link>
      <pubDate>Sat, 30 May 2026 01:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/drizzle-relations/</guid>
      <description>&lt;p&gt;Drizzle ORMの &lt;code&gt;relations&lt;/code&gt; を使うと、テーブル間の関係を定義してシンプルなコードで結合データを取得できます。&lt;code&gt;posts&lt;/code&gt; と &lt;code&gt;comments&lt;/code&gt; を例に実装しました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKit × Cloudflare WorkersでWebSocketを実装した話</title>
      <link>https://jiru-labo.com/posts/sveltekit-websocket/</link>
      <pubDate>Sat, 30 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-websocket/</guid>
      <description>&lt;p&gt;WebSocketを使うと、一度接続したら切断するまで双方向にリアルタイムで通信し続けられます。SvelteKit + Cloudflare Workersでエコーサーバーを実装しました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>DrizzleでマイグレーションとSeedを実装した話</title>
      <link>https://jiru-labo.com/posts/drizzle-migration-seed/</link>
      <pubDate>Fri, 29 May 2026 03:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/drizzle-migration-seed/</guid>
      <description>&lt;p&gt;drizzle-kitを使ってマイグレーションを生成し、Cloudflare D1に適用する方法と、seed.sqlで初期データを流し込む方法をまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKit × Cloudflare D1にDrizzle ORMを導入した話</title>
      <link>https://jiru-labo.com/posts/sveltekit-drizzle/</link>
      <pubDate>Fri, 29 May 2026 02:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-drizzle/</guid>
      <description>&lt;p&gt;Drizzle ORMはTypeScript向けの軽量ORMです。&lt;code&gt;platform.env.DB.prepare(&#39;SELECT ...&#39;)&lt;/code&gt; と書いていた生SQLを、型安全なTypeScriptのコードに置き換えられます。今回は既存のCloudflare D1テーブルに対してDrizzleを導入しました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare QueuesのプロデューサーをSvelteKitで実装した話</title>
      <link>https://jiru-labo.com/posts/cloudflare-queues/</link>
      <pubDate>Fri, 29 May 2026 01:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/cloudflare-queues/</guid>
      <description>&lt;p&gt;Cloudflare Queuesを使うと、処理を非同期でバックグラウンド実行できます。重い処理をQueueに投げることで、ユーザーを待たせずにレスポンスを返せます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare Workers AIをSvelteKitで使った話</title>
      <link>https://jiru-labo.com/posts/cloudflare-workers-ai/</link>
      <pubDate>Tue, 26 May 2026 01:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/cloudflare-workers-ai/</guid>
      <description>&lt;p&gt;Cloudflare Workers AIを使うと、Cloudflareのエッジネットワーク上でAIモデルを直接実行できます。外部のAI APIを別途契約しなくても、Cloudflareアカウントだけで利用できます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare Workersのシークレット管理を整理した話</title>
      <link>https://jiru-labo.com/posts/cloudflare-secrets/</link>
      <pubDate>Tue, 26 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/cloudflare-secrets/</guid>
      <description>&lt;p&gt;Cloudflare Workersでシークレット（APIキーなど秘密の値）を扱う方法を整理します。ローカルと本番で管理方法が異なります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare KVをSvelteKitで使った話</title>
      <link>https://jiru-labo.com/posts/cloudflare-kv/</link>
      <pubDate>Sat, 23 May 2026 03:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/cloudflare-kv/</guid>
      <description>&lt;p&gt;Cloudflare KV（Key-Value Storage）はシンプルなキーと値のペアを保存するストレージです。D1のようなSQLクエリは不要で、&lt;code&gt;get&lt;/code&gt; / &lt;code&gt;put&lt;/code&gt; / &lt;code&gt;delete&lt;/code&gt; だけで操作できます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKit × Cloudflare R2 でファイルアップロードを実装した話</title>
      <link>https://jiru-labo.com/posts/cloudflare-r2-upload/</link>
      <pubDate>Fri, 22 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/cloudflare-r2-upload/</guid>
      <description>&lt;p&gt;SvelteKit + Cloudflare Workers の構成でCloudflare R2を使ったファイルアップロード機能を実装しました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKit &#43; GitHub OAuthをCloudflare Workersにデプロイした話（躓きポイントまとめ）</title>
      <link>https://jiru-labo.com/posts/sveltekit-github-oauth-deploy/</link>
      <pubDate>Fri, 15 May 2026 08:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-github-oauth-deploy/</guid>
      <description>&lt;p&gt;ローカルで動作確認済みのGitHub OAuth認証をCloudflare Workersにデプロイする際、環境変数まわりで複数の躓きポイントがありました。&#xA;同じ構成（SvelteKit + adapter-cloudflare + wrangler deploy）を使う場合の参考になるようにまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKitでGitHub OAuthログインを実装した話</title>
      <link>https://jiru-labo.com/posts/sveltekit-github-oauth/</link>
      <pubDate>Fri, 15 May 2026 06:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-github-oauth/</guid>
      <description>&lt;p&gt;固定パスワードによる簡易認証をGitHub OAuthを使った本格的な認証に置き換えました。&#xA;Arcticライブラリを使ってOAuthの実装をシンプルに保ちつつ、セッション管理にはCloudflare D1を使っています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKit &#43; D1をCloudflare Pagesにデプロイした話</title>
      <link>https://jiru-labo.com/posts/sveltekit-d1-deploy/</link>
      <pubDate>Fri, 15 May 2026 05:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-d1-deploy/</guid>
      <description>&lt;p&gt;D1（CloudflareのSQLite）を導入したSvelteKitプロジェクトをCloudflare Pagesにデプロイしました。&#xA;ローカルで動作確認済みでも、デプロイ時にD1まわりでハマりやすい点があるため、手順とトラブルシューティングをまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKitにCloudflare D1を導入してDBからデータを取得した話</title>
      <link>https://jiru-labo.com/posts/sveltekit-d1-database/</link>
      <pubDate>Fri, 15 May 2026 04:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-d1-database/</guid>
      <description>&lt;p&gt;&lt;code&gt;$lib/posts.ts&lt;/code&gt; に書いていた静的なデータをCloudflare D1（サーバーレスSQLite）に移行しました。&#xA;この記事ではDB作成からマイグレーション、SvelteKit側でのデータ取得までの手順をまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKitアプリをGitHubからCloudflare Workersにデプロイした話</title>
      <link>https://jiru-labo.com/posts/sveltekit-deploy-github-cloudflare/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-deploy-github-cloudflare/</guid>
      <description>&lt;p&gt;SvelteKitで作ったアプリをGitHubにプッシュし、Cloudflare Workersにデプロイしました。&#xA;Cloudflareのダッシュボードが新UIに変わっており、いくつか躓いたポイントがあったので手順と合わせて残しておきます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SvelteKitをCloudflare Pagesにデプロイした話</title>
      <link>https://jiru-labo.com/posts/sveltekit-deploy-cloudflare/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/sveltekit-deploy-cloudflare/</guid>
      <description>&lt;p&gt;SvelteKitで作ったTODOアプリを実際に公開するため、Cloudflare Pages へのデプロイ設定を行いました。&#xA;アダプターの役割と環境変数の扱いを中心に整理します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>XServerのドメインをCloudflareに移管した話</title>
      <link>https://jiru-labo.com/posts/transfer-domain-from-xserver-to-cloudflare/</link>
      <pubDate>Wed, 13 May 2026 02:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/transfer-domain-from-xserver-to-cloudflare/</guid>
      <description>&lt;p&gt;XServerのWordPressブログをCloudflare Pagesに移行したのに伴い、&#xA;ドメイン（jiru-labo.com）の登録もXServerからCloudflare Registrarに移管しました。&lt;/p&gt;&#xA;&lt;p&gt;今回のドメインはXServerの&lt;strong&gt;独自ドメイン永久無料特典&lt;/strong&gt;で取得したものだったため、&#xA;通常とは異なる手順が必要でした。同じ状況の方の参考になれば幸いです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HugoサイトにCloudflare WorkersとResendでお問い合わせフォームを実装した話</title>
      <link>https://jiru-labo.com/posts/contact-form-cloudflare-workers/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/contact-form-cloudflare-workers/</guid>
      <description>&lt;p&gt;Hugoで作った静的サイトにお問い合わせフォームを実装しました。静的サイトはサーバーサイドの処理ができないため、フォームの送信処理には別の仕組みが必要です。今回は &lt;strong&gt;Cloudflare Workers&lt;/strong&gt;（サーバーレス関数）と &lt;strong&gt;Resend&lt;/strong&gt;（メール送信API）を組み合わせた構成にしました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HugoのMainroadテーマをカスタマイズしてコーポレートサイト風にした話</title>
      <link>https://jiru-labo.com/posts/hugo-layout-customization/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/hugo-layout-customization/</guid>
      <description>&lt;p&gt;XServerのWordPressブログをHugo＋Cloudflare Pagesに移行した後、デフォルトのMainroadテーマのままでは味気なく、コーポレートサイト風のレイアウトに作り直しました。&#xA;この記事では、その試行錯誤の経緯を記録として残します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>XServerのWordPressブログをCloudflare Pagesに移行した話</title>
      <link>https://jiru-labo.com/posts/migrate-wordpress-to-cloudflare/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/migrate-wordpress-to-cloudflare/</guid>
      <description>&lt;p&gt;長年XServerでWordPressブログを運営していました（と言っても記事の投稿はすっかり止まってましたが…汗）が、思い切ってHugo＋Cloudflare Pagesに移行しました。&#xA;表示速度の向上、ランニングコストゼロ、Markdownでの執筆環境など、メリットが多く大満足です。&lt;/p&gt;&#xA;&lt;p&gt;この記事では、実際に移行した手順とハマったポイントをまとめます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>個人事業用にCloudflareアカウントを新規作成した話</title>
      <link>https://jiru-labo.com/posts/create-cloudflare-account-for-business/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0900</pubDate>
      <guid>https://jiru-labo.com/posts/create-cloudflare-account-for-business/</guid>
      <description>&lt;p&gt;XServerで運営していたWordPressブログをCloudflare Pagesに移行するにあたり、&#xA;個人事業用のCloudflareアカウントを新規に作成しました。&lt;/p&gt;&#xA;&lt;p&gt;Cloudflareは無料プランでも非常に多くの機能が使えます。&#xA;この記事ではアカウント作成の手順と、実際に使った機能を紹介します。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
