<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>jemai</title>
  <link>https://jemai.cc/ja/</link>
  <description>Workers、推論、少人数のエンジニアリングについての技術ブログです。記事は一つの言語で書き、中国語・英語・日本語・スペイン語・アラビア語で公開します。</description>
  <language>ja</language>
  <lastBuildDate>Sat, 17 Oct 2026 16:33:43 GMT</lastBuildDate>
  <atom:link href="https://jemai.cc/ja/rss.xml" rel="self" type="application/rss+xml"/>
  <item>
    <title>技術知識ゼロ・費用ゼロ：30分で独自ドメインの個人ブログを作る（CF CMS 完全ガイド）</title>
    <link>https://jemai.cc/ja/posts/zero-cost-blog-cf-cms</link>
    <guid isPermaLink="true">https://jemai.cc/ja/posts/zero-cost-blog-cf-cms</guid>
    <pubDate>Sat, 17 Oct 2026 11:55:13 GMT</pubDate>
    <description>コードが書けない、サーバーも借りたくない。そんな人でも、オープンソースの CF CMS と Cloudflare の無料枠なら、ドメイン代以外は一切かからず、独自ドメイン・5言語対応・AI エージェントで運用できるブログをコマンド1つでデプロイできます。手順とエラー早見表付き。</description>
    <content:encoded><![CDATA[<p>こんな経験、ありませんか？</p>
<p>プラットフォームで2年間書き続けてきたのに、<strong>一度の表示制限、一度のアカウント停止で、記事もフォロワーもあっという間に消えてしまった</strong>。</p>
<p>自分のブログを持とうと思って調べてみると、サーバーを借りて、環境を構築して、Nginx を設定して、HTTPS を入れて、毎日攻撃に備えて……。書き始める前に心が折れてしまう。</p>
<p>この記事は、そんなあなたのために書きました。</p>
<p>オープンソースの <strong>CF CMS</strong> を使って、Cloudflare 上に<strong>独自のトップレベルドメインを持つ個人ブログ</strong>を作る方法を紹介します。今あなたが読んでいるこのサイトも、まさにこの方法で作りました。</p>
<p>最初にはっきり言っておきます。</p>
<ul>
<li><strong>技術知識ゼロ</strong>：コードは書けなくて大丈夫。やることは<strong>コピー、貼り付け、Enter</strong> だけ。それすら面倒なら、コマンドを AI エージェントに任せることもできます。</li>
<li><strong>費用ゼロ</strong>：<strong>ドメイン代を除けば</strong>（安い TLD なら年に数ドル）、サイト、データベース、画像ストレージ、自動翻訳まで、すべて Cloudflare の無料枠で動きます。<strong>サーバーを借りる必要はありません。</strong></li>
</ul>
<p>準備はいいですか？　始めましょう。</p>
<h2 id="まず結論-何が手に入るのか">まず結論：何が手に入るのか</h2>
<ul>
<li>✅ あなただけのトップレベルドメイン（例：<code>yourdomain.com</code>）</li>
<li>✅ HTTPS の自動化 + グローバル CDN で、大手サイトに負けない表示速度</li>
<li>✅ <strong>中国語・英語・日本語・スペイン語・アラビア語の5言語</strong>。1本書けば、保存時に自動翻訳</li>
<li>✅ 8種類のテンプレート + ロゴ、favicon、テーマカラーをワンクリック生成</li>
<li>✅ 管理画面はランダムな秘密のパスの奥に。<code>/admin</code> に直接アクセスすると 404</li>
<li>✅ MCP インターフェースを標準搭載。<strong>AI エージェントに記事の投稿や設定変更を任せられる</strong></li>
</ul>
<p>用意するものは3つだけ：</p>
<ul>
<li><input disabled="" type="checkbox"> ドメイン（買い方はこのあと説明します）</li>
<li><input disabled="" type="checkbox"> Cloudflare の無料アカウント</li>
<li><input disabled="" type="checkbox"> ターミナルが使えるパソコン（macOS / Linux。Windows なら WSL がおすすめ）</li>
</ul>
<h2 id="図でひと目で-どこで動いているの">図でひと目で：どこで動いているの？</h2>
<p><img src="/media/images/2026/10/a6f004bc-9cee-4ad5-ad9e-e1ba0ae6e689.png" alt="CF CMS のアーキテクチャ図：訪問者は yourdomain.com から Cloudflare の DNS と CDN を経由して Pages Functions に届き、その裏で D1 データベース、R2 画像ストレージ、Workers AI 翻訳が動く" loading="lazy" decoding="async"></p>
<p>ざっくり言うと：</p>
<ul>
<li><strong>Pages</strong>：サイト本体。ページを描画する</li>
<li><strong>D1</strong>：データベース。記事、タグ、設定を保存</li>
<li><strong>R2</strong>：画像の保存先</li>
<li><strong>Workers AI</strong>：記事の保存時に、ほかの4言語へ翻訳してくれる</li>
</ul>
<p><strong>あなたが管理しなければならないサーバーは1台もありません。</strong> パッチ当ても、スケールも、DDoS 対策も、すべて Cloudflare の仕事です。</p>
<h2 id="全体の流れを1枚で-8ステップ">全体の流れを1枚で：8ステップ</h2>
<p><img src="/media/images/2026/10/8c5ccb23-d13f-4d5f-8ccf-822fa287c2ff.png" alt="ゼロから公開までの8ステップ：ドメイン購入、Cloudflare への接続、API トークン作成、R2 の有効化、コードの取得、コマンド1つでデプロイ、隠し管理画面へ、執筆と運用" loading="lazy" decoding="async"></p>
<p>順調にいけば <strong>30〜60分</strong>。本当に頭を使うのはステップ1の<strong>名前決め</strong>だけです。</p>
<h2 id="ステップ1-ドメインを買う">ステップ1：ドメインを買う</h2>
<p>ドメインはインターネット上の住所。そして、この構成で<strong>唯一お金がかかる部分</strong>です。</p>
<p>信頼できるレジストラならどこでも構いません。たとえば Spaceship、Cloudflare Registrar、Namecheap など。<strong>価格が明快で、更新料が良心的で、WHOIS プライバシー保護に対応しているところを選べば OK です。</strong></p>
<p>ドメイン選びの3つのコツ：</p>
<ol>
<li><strong>短く、覚えやすく、綴りやすく。</strong> 友だちに口頭で伝えられるなら、それは良いドメインです。</li>
<li><strong>初年度の価格だけでなく、更新料を確認する。</strong> 初年度は激安でも、2年目から何倍にもなる TLD があります。</li>
<li><code>.com</code> にこだわらなくて大丈夫：<code>.cc</code>、<code>.dev</code>、<code>.me</code> も個人ブログにぴったりです。</li>
</ol>
<h2 id="ステップ2-ドメインを-cloudflare-につなぐ">ステップ2：ドメインを Cloudflare につなぐ</h2>
<ol>
<li>Cloudflare の公式サイトを開き、<strong>無料アカウント</strong>を作成します。</li>
<li><strong>Add a site</strong> をクリックしてドメインを入力し、プランは <strong>Free</strong> を選びます。</li>
<li>Cloudflare から<strong>ネームサーバー</strong>のアドレスが<strong>2つ</strong>表示されます。</li>
<li>ドメインを買ったレジストラの管理画面に戻り、ネームサーバーをその2つに変更します。</li>
<li>数分〜数時間待って、Cloudflare に <strong>Active</strong> と表示されれば完了です。</li>
</ol>
<p><strong>ポイント：ドメインは、このあとデプロイに使うのと同じ Cloudflare アカウントに置くこと。</strong> セットアップスクリプトは API トークンを使ってこのドメインを探します。</p>
<h2 id="ステップ3-api-トークンを作る-そのまま真似すれば-ok">ステップ3：API トークンを作る（そのまま真似すれば OK）</h2>
<p>場所：Cloudflare 右上のアイコン → <strong>My Profile → API Tokens → Create Token → Create Custom Token</strong>。</p>
<p>下の図のとおり、1つずつチェックを入れていきます。</p>
<p><img src="/media/images/2026/10/0a5a224c-c80d-4c9c-a7bc-34c19abdc3f9.png" alt="Cloudflare API トークンの権限チェックリスト：アカウントレベルで Cloudflare Pages Edit、D1 Edit、Workers R2 Storage Edit、Account Settings Read、ゾーンレベルで Zone Read、DNS Edit" loading="lazy" decoding="async"></p>
<ul>
<li>Account · Cloudflare Pages · <strong>Edit</strong></li>
<li>Account · D1 · <strong>Edit</strong></li>
<li>Account · Workers R2 Storage · <strong>Edit</strong></li>
<li>Account · Account Settings · <strong>Read</strong></li>
<li>Zone · Zone · <strong>Read</strong>（独自ドメインを使う場合）</li>
<li>Zone · DNS · <strong>Edit</strong>（独自ドメインを使う場合）</li>
</ul>
<p>注意点を2つ：</p>
<ul>
<li><strong>Workers AI に追加の権限は不要です。</strong> サイトの実行時は Pages の AI バインディングを使います。</li>
<li><strong>このトークンはセットアップスクリプト専用。執筆用のエージェントには渡さないでください。</strong> 作成時に一度しか表示されないので、すぐに保存しておきましょう。</li>
</ul>
<h2 id="ステップ4-r2-を有効にする">ステップ4：R2 を有効にする</h2>
<p>R2 は画像の置き場所です。<strong>事前にダッシュボードで手動で有効にする必要があります。</strong> ここはスクリプトが代わりにクリックできません。</p>
<p>Cloudflare ダッシュボード左側の <strong>R2</strong> を開き、有効化するだけです。</p>
<p>⚠️ 正直に言うと：<strong>アカウントによっては、R2 を有効にする前にカードか PayPal の登録が必要です。</strong> でも慌てないで。登録しても課金されるわけではなく、<strong>無料枠（ストレージ 10 GB）の範囲内なら料金はかかりません。</strong> 個人ブログの画像で使い切ることはまずありません。</p>
<p>私も最初のデプロイでここでつまずきました。スクリプトが途中で <code>10042</code> を出して止まり、原因は R2 が未有効化だったこと。有効にして再実行したら、一発で通りました。</p>
<h2 id="ステップ5-コードを手に入れる">ステップ5：コードを手に入れる</h2>
<p>CF CMS はオープンソースで、コードは GitHub にあります：<code>github.com/jemkuo/cf-cms</code></p>
<p>どちらか一つ：</p>
<ul>
<li><strong>おすすめ</strong>：GitHub で <strong>Fork</strong> をクリックして自分のアカウントにコピー。あとから手を加えやすくなります。</li>
<li>または直接クローン：</li>
</ul>
<pre class="code"><code class="language-bash">git clone https://github.com/jemkuo/cf-cms.git
cd cf-cms</code></pre>
<p>パソコンには <strong>Node.js 20 以降</strong> を入れておいてください（公式サイトからインストーラーをダウンロードして、案内どおり進めるだけ）。</p>
<h2 id="ステップ6-コマンド1つでデプロイ">ステップ6：コマンド1つでデプロイ ⭐</h2>
<p>ここがこの記事のいちばん大事なところです。まず、ステップ3のトークンを環境変数に入れます（<strong>ターミナルの中にだけ存在し、スクリプトが表示することはありません</strong>）。</p>
<pre class="code"><code class="language-bash">export CLOUDFLARE_API_TOKEN=トークンを貼り付け</code></pre>
<p>そして、<strong>コマンドは1つだけ</strong>：</p>
<pre class="code"><code class="language-bash">npm install &amp;&amp; ./scripts/setup.sh --project myblog --domain yourdomain.com</code></pre>
<p><code>myblog</code> は好きなプロジェクト名に、<code>yourdomain.com</code> はあなたのドメインに置き換えてください。</p>
<p>不安なら、まず <code>--dry-run</code> を付けてリハーサル。<strong>チェックするだけで、何も作成しません</strong>：</p>
<pre class="code"><code class="language-bash">./scripts/setup.sh --project myblog --domain yourdomain.com --dry-run</code></pre>
<h3 id="まず-健康診断-をしてくれる">まず「健康診断」をしてくれる</h3>
<p>スクリプトは作業を始める前に<strong>事前チェックリスト</strong>を表示します。トークン、アカウント、Pages、D1、R2、ドメインを1項目ずつ確認します。</p>
<p><img src="/media/images/2026/10/9ca9725b-50b7-4b8b-b3e4-ed7e2a71ed4c.png" alt="setup.sh 事前チェックリストのターミナルイメージ：初回は R2 が未有効化でエラー 10042、R2 を有効にして再実行するとすべて通過し、ドメインに既存の DNS レコードがあることを知らせる" loading="lazy" decoding="async"></p>
<ul>
<li><strong>すべて ✓</strong>：D1 データベース、R2 バケット、Pages プロジェクト、各種シークレットを自動で作成し、サイトを公開します。</li>
<li><strong>✗ がある</strong>：<strong>リソースは1つも作りません。</strong> どのステップに問題があるか、ダッシュボードのどこを直すか、直したあとどのコマンドで再実行するかを、中国語と英語で教えてくれます。</li>
<li><strong>account id を自分で探す必要なし</strong>：トークンから見えるアカウントが1つだけなら、スクリプトが自動で入力します。</li>
</ul>
<h3 id="途中で失敗したら-そのまま再実行">途中で失敗したら？　そのまま再実行</h3>
<p>進捗はローカルの <code>.cf-cms-setup.json</code> に記録されます。<strong>再実行すると続きから進みます。</strong> 作成済みの D1、R2、Pages は再利用され、重複して作られることも、記事が消えることもありません。</p>
<h3 id="ドメインに古いレコードがある-まず確認してくれる">ドメインに古いレコードがある？　まず確認してくれる</h3>
<p>ドメインが以前ほかのサーバーを指していた場合、スクリプトは<strong>古い A / AAAA / CNAME レコードをまず一覧表示し、デフォルトでは削除しません。</strong></p>
<p>置き換えて問題ないと確認できたら、<code>--replace-dns</code> を付けて再実行（またはプロンプトで <code>y</code> と回答）すると、Pages を指す CNAME に切り替えてくれます：</p>
<p><img src="/media/images/2026/10/311e3ccb-67f2-44e3-bdcf-b47ddc7c22fb.png" alt="DNS レコードの切り替え前後：古いサーバーを指す2つの A レコードが、yourproject.pages.dev を指すオレンジ雲の CNAME に置き換わり、TXT 認証レコードは残る" loading="lazy" decoding="async"></p>
<p><strong>注意</strong>：切り替えたあとは、古いサーバーがこのドメインで提供していたサービスにはアクセスできなくなります。TXT などのほかのレコードは残ります。</p>
<h3 id="完了すると">完了すると</h3>
<p>ターミナルの最後に <strong>Admin の URL</strong> が1行表示されます。こんな感じです：</p>
<pre class="code"><code class="language-text">Admin:      https://yourdomain.com/&lt;ADMIN_SAFEPATH&gt;/admin/</code></pre>
<p>管理画面のパスワードは<strong>ランダムに生成</strong>され、プロジェクトフォルダの <code>.dev.vars</code> に書き込まれます。<strong>画面には表示されません。</strong></p>
<p>👉 <strong>Admin の URL と <code>.dev.vars</code> はセットで大切に保管してください。</strong> これがあなたのブログの鍵です。</p>
<p>ドメインのステータスが <code>pending</code> でも焦らずに。証明書の発行と DNS の反映には、たいてい数分かかります。</p>
<h2 id="ステップ7-隠し管理画面に入って-自分らしく">ステップ7：隠し管理画面に入って、自分らしく</h2>
<p>その Admin の URL を開いてパスワードを入力します：</p>
<p><img src="/media/images/2026/10/27918977-8d29-4389-831d-ba5b8c5c96c2.png" alt="CF CMS の隠し管理画面ログインページの実際のスクリーンショット。アドレスは yourdomain.com/&lt;ADMIN_SAFEPATH&gt;/admin/" loading="lazy" decoding="async"></p>
<p><strong>なぜ隠すのか？</strong> ほとんどのスキャナーは <code>/admin</code> や <code>/wp-login</code> を狙ってきます。CF CMS の管理画面はランダムなパスの奥にあるので、<code>/admin</code> に直接アクセスしても 404。ログインフォームすら見えません。</p>
<p>入ったら、まず2つだけやりましょう：</p>
<ol>
<li><strong>テンプレートを選ぶ</strong>：個人の技術ブログ（Dispatch、Signal）、ライフスタイル（Atelier、Hearth）、企業サイト（Practice、Civic）、テック企業（Launch、Orbit）、さらにオリジナルの Paper、Ink、Terminal。</li>
<li><strong>ビジュアルキットをワンクリック生成</strong>：<strong>Generate visual kit</strong> を押すと、テンプレートに合った<strong>ロゴ、favicon、テーマカラー</strong>が自動で生成されます。気に入らなければ再生成するか、自分の画像に差し替えましょう。</li>
</ol>
<h2 id="ステップ8-記事を書けば-自動で5言語に">ステップ8：記事を書けば、自動で5言語に</h2>
<p>デプロイしたてのサイトにはサンプル記事がいくつか入っているので、まずは見た目を確認できます：</p>
<p><img src="/media/images/2026/10/11177172-d757-4c54-b968-62443f0e7e0a.png" alt="CF CMS をデプロイした直後のブログトップページの実際のスクリーンショット。デフォルトの Paper テンプレートで、上部で中国語・英語・日本語・スペイン語・アラビア語を切り替えられる" loading="lazy" decoding="async"></p>
<p>確認したら削除して、自分の記事を書きましょう：</p>
<ul>
<li><strong>Markdown</strong> で執筆。見出し、リスト、コードブロック、画像に対応</li>
<li>画像はそのままアップロードすれば R2 に保存</li>
<li><strong>保存時に翻訳にチェック</strong>を入れると、Workers AI が英語・日本語・スペイン語・アラビア語版を自動生成（アラビア語は自動で右から左のレイアウトに）</li>
<li>記事ごとに SEO を設定可能：キーワード、canonical、Open Graph のシェア画像</li>
</ul>
<p><strong>一度書けば、5つの言語の読者があなたを見つけられる。</strong> 大手プラットフォームでも、なかなかできないことです。</p>
<h2 id="日々の運用-ai-エージェントを編集者に">日々の運用：AI エージェントを編集者に</h2>
<p>ブログの公開はスタートにすぎません。本当にラクなのは、<strong>日々の運用をほぼ AI に任せられること</strong>です。</p>
<h3 id="1-ひとことで-ai-エージェントを接続">1. ひとことで AI エージェントを接続</h3>
<p>CF CMS には MCP インターフェース（あなたのドメインの <code>/mcp</code>）が組み込まれています。Cursor や Claude など MCP 対応のクライアントに、<strong>プロジェクトの README にある「ひとこと説明」を貼り付け</strong>、<code>.dev.vars</code> の <code>ADMIN_API_TOKEN</code> を設定すれば、エージェントは次のことができます：</p>
<ul>
<li>記事の一覧表示、作成、編集、公開、削除</li>
<li>タグ、カテゴリ、テンプレート、ロゴの管理</li>
<li>画像のアップロード</li>
</ul>
<p>接続したら、こう話しかけるだけです：</p>
<blockquote>
<p>「slug を edge-notes にした中国語の下書きを notes カテゴリに作って、ほかの言語にも翻訳して。」</p>
</blockquote>
<p><strong>安全設計</strong>：<code>ADMIN_API_TOKEN</code> で扱えるのはコンテンツだけ。<strong>デプロイはできず、Cloudflare アカウントにも触れません。</strong> ステップ3の Cloudflare トークンをエージェントに渡さないのも、このためです。</p>
<h3 id="2-シークレットは定期的にローテーション">2. シークレットは定期的にローテーション</h3>
<p>パスワードやトークンが漏れたかも？　コマンド1つで差し替えられます：</p>
<pre class="code"><code class="language-bash">npx wrangler pages secret put ADMIN_PASSWORD --project-name myblog</code></pre>
<p><code>ADMIN_API_TOKEN</code> や <code>SESSION_SECRET</code> も同じです。デプロイが終わったら、ステップ3の Cloudflare API トークンも削除またはローテーションして、次のデプロイ時に作り直せば OK です。</p>
<h3 id="3-無料枠を把握しておく">3. 無料枠を把握しておく</h3>
<table>
<thead>
<tr>
<th>リソース</th>
<th>ブログでの役割</th>
<th>一般的な無料枠</th>
</tr>
</thead>
<tbody><tr>
<td>Pages</td>
<td>サイトと Functions</td>
<td>月 500 ビルド、1日 10 万 Functions リクエスト</td>
</tr>
<tr>
<td>D1</td>
<td>記事、設定</td>
<td>5 GB、1日あたりの行の読み書き上限</td>
</tr>
<tr>
<td>R2</td>
<td>画像</td>
<td>ストレージ 10 GB、読み書き操作の回数に上限あり</td>
</tr>
<tr>
<td>Workers AI</td>
<td>保存時の翻訳</td>
<td>1日 10,000 Neurons</td>
</tr>
</tbody></table>
<p>最新の数値は Cloudflare ダッシュボードで確認してください。<strong>個人ブログのアクセス量なら、まず上限には届きません。</strong> 翻訳はアクセスのたびではなく保存時にだけ実行され、Workers AI の枠は毎日リセットされます。</p>
<h3 id="4-よくあるエラー早見表">4. よくあるエラー早見表</h3>
<table>
<thead>
<tr>
<th>表示される内容</th>
<th>対処法</th>
</tr>
</thead>
<tbody><tr>
<td><code>✗ R2 is not enabled</code>、エラー <strong>10042</strong></td>
<td>ダッシュボードで R2 を有効化（先に支払い方法の登録が必要な場合あり）してから再実行</td>
</tr>
<tr>
<td>トークンが無効（<strong>10000</strong>）または権限不足（<strong>9109</strong>、HTTP 403）</td>
<td>ステップ3のリストどおりに権限を追加し、もう一度 <code>export</code> してから再実行</td>
</tr>
<tr>
<td>ドメインがずっと <strong>pending</strong></td>
<td>スクリプトが一覧表示した古い A / AAAA / CNAME を確認し、問題なければ <code>--replace-dns</code> を付けて再実行。DNS が正しくなってから証明書発行までさらに数分かかる</td>
</tr>
<tr>
<td>Pages のプロジェクト名が使用済み</td>
<td>別の <code>--project</code> 名にする</td>
</tr>
<tr>
<td>D1、R2、Pages がすでに存在する</td>
<td>そのまま再実行。同じ名前のリソースは再利用される</td>
</tr>
<tr>
<td>ネットワークエラー</td>
<td>接続を確認して再実行。完了済みのステップはスキップされる</td>
</tr>
</tbody></table>
<p><strong>覚えておくのはこれだけ：エラーが出たら、メッセージを読んで、直して、再実行。</strong> どこを直して何を実行すればいいかは、スクリプトが教えてくれます。</p>
<h2 id="技術知識ゼロ-について-正直なところ">「技術知識ゼロ」について、正直なところ</h2>
<p>この流れの中で、ターミナルを開いてコマンドをいくつか打つのは事実です。</p>
<p>でも、それが何をしているか<strong>理解する必要はありません。</strong> やることはこれだけ：</p>
<ol>
<li>コマンドをコピー</li>
<li>ターミナルに貼り付け</li>
<li>Enter を押して、✗ が出ていないか確認</li>
</ol>
<p>もっとラクな方法：<strong>この記事と README を AI エージェントに渡して、代わりに実行してもらう。</strong> エージェントが止まるのは、ダッシュボードでのクリック（R2 の有効化など）か、あなたの確認（DNS の置き換えなど）が必要なときだけ。案内どおりに進めれば大丈夫です。</p>
<h2 id="コストを計算してみる">コストを計算してみる</h2>
<table>
<thead>
<tr>
<th>項目</th>
<th>費用</th>
</tr>
</thead>
<tbody><tr>
<td>ドメイン</td>
<td><strong>年に数ドルから</strong>（TLD による）</td>
</tr>
<tr>
<td>サーバー</td>
<td>0（Cloudflare Pages）</td>
</tr>
<tr>
<td>データベース</td>
<td>0（D1 無料枠）</td>
</tr>
<tr>
<td>画像ストレージ</td>
<td>0（R2 無料枠）</td>
</tr>
<tr>
<td>5言語翻訳</td>
<td>0（Workers AI 無料枠）</td>
</tr>
<tr>
<td>HTTPS 証明書 + CDN</td>
<td>0</td>
</tr>
<tr>
<td>CMS ソフトウェア</td>
<td>0（オープンソース）</td>
</tr>
</tbody></table>
<p><strong>ドメイン以外、1円もかかりません。</strong></p>
<h2 id="最後に">最後に</h2>
<p>プラットフォームは集客をくれるけれど、その土地はいつまでもプラットフォームのものです。</p>
<p><strong>独立ブログこそ、あなたのデジタル資産</strong>：ドメインもコンテンツもあなたのもの。読者はあなたに直接たどり着けます。</p>
<p>今日、最初の一歩を踏み出しましょう：<strong>気に入ったドメインを選んで、この記事のとおりに一度やってみてください。</strong></p>
<p>構築中に困ったことがあれば、気軽にコメントを。プロジェクトが役に立ったら、GitHub で CF CMS に ⭐ をもらえると嬉しいです。</p>
<p>次回は、<strong>AI エージェントに毎日このブログを運営してもらう方法</strong>について話します。</p>
]]></content:encoded>
    <category>CF CMS</category>
    <category>Cloudflare</category>
    <category>独立ブログ</category>
    <category>サイト構築</category>
  </item>
</channel>
</rss>
