6-3 Claude Code で作った Web アプリを Vercel に公開
無料Claude Code で作った LP / 社内ツールを Vercel に本番公開する手順。GitHub 連携、独自ドメイン設定、環境変数、プレビューデプロイ運用まで、30 分で公開〜運用フローを身につけます。
このレッスンで身につくこと
6-1 で作った LP と 6-2 で作った 社内ツール を、いよいよ インターネット上に公開 します。「ローカルで動くもの」と「世界の誰でも触れるもの」の壁を 5 分 で越えるのが Vercel です。
このレッスンのゴール
- Vercel / Cloudflare Pages / Netlify を 4 軸 で比較できる
- GitHub 連携 → 初回デプロイ の最短ルートを実機で踏める
- 静的 HTML / Next.js / Astro の フレームワーク別 公開手順を押さえる
- カスタムドメイン と DNS の仕組みを理解する
- 環境変数 の安全な扱い方と API キー流出事故 の防ぎ方
- プレビューデプロイ を A/B テスト基地に変える運用テク
- 無料枠の境界線と 月いくらから課金されるか の地図
所要時間 — 約 30 分 難易度 — ★★☆☆☆
肝は 「自分のドメインで Web に出す」 を 1 回最後までやり切ること。1 回でも本番デプロイを経験すると、その後の作業速度が体感 3 倍に上がります。
デプロイとは — 5 分の地図
デプロイ とは、ローカルで動いている Web ページを 世界中からアクセスできるサーバー に配置すること。「ホスティング」「ローンチ」「公開」も同じ意味です。
> デプロイとは何か、30 秒で読める説明を書いて。
> 無料で使えるサービスも 3 つ紹介して。2024 年以降、個人プロジェクトや社内ツールなら 費用ゼロ で本番公開できる時代になりました。GitHub にコードを置けば自動で公開 される、というのが今の標準です。
| 従来(〜2020 年) | 現在(2024〜) | |
|---|---|---|
| サーバー | レンタル(月 500〜3,000 円) | Vercel 無料枠 |
| アップロード | FTP / SSH 手動 | git push で自動 |
| SSL 証明書 | 別途取得 | 自動付与・自動更新 |
| ドメイン | DNS 手書き | 管理画面で 1 クリック |
| 公開時間 | 半日〜数日 | 5 分 |
「公開のコスト」がゼロに近づいた のが、Claude Code 時代のもう 1 つの革命。30 分で作って 5 分で公開 を 1 セットで体に染み込ませると、副業から本業まで世界が一気に広がります。
なぜ Vercel か — 4 軸の比較
Netlify / Cloudflare Pages / GitHub Pages との違いを整理します。
| 軸 | Vercel | Cloudflare Pages | Netlify | GitHub Pages |
|---|---|---|---|---|
| 初回難度 | ★☆☆☆☆ | ★★☆☆☆ | ★☆☆☆☆ | ★★★☆☆ |
| 無料枠 | 個人潤沢 | 事実上無制限 | やや渋い | 100GB/月 |
| 統合 | Next.js 神 | Astro 強い | 中立 | 静的のみ |
| プレビュー | 全 PR 自動 | あり | あり | なし |
| 向く用途 | Next.js / LP | 高トラフィック | フォーム同梱 | ドキュメント |
Vercel を最初に薦める 3 つの理由
- Next.js の生みの親が運営 — Next.js / React Router / Astro / Vite どれもフレームワーク自動検知
- プレビューデプロイがデフォルト — ブランチごとに自動で URL 発行、レビューが激速になる
- ダッシュボードの分かりやすさ — 環境変数・ドメイン・ビルドログが 1 画面完結
「迷ったら Vercel、トラフィック多いなら Cloudflare Pages」 が業界の合言葉です。
事前準備 — アカウントと GitHub 連携
実機作業に入ります。所要 5 分。
Step 1 — https://github.com/signup から GitHub に無料登録(既にあればスキップ)。GitHub はコードの保管庫、Vercel はそこを 自動で見張ってデプロイ する仕組み。
Step 2 — https://vercel.com/signup で 「Continue with GitHub」 をクリック。メール認証も不要で即ログイン。Hobby プラン(個人完全無料、商用は要注意)を選ぶ。Pro は月 $20。
Step 3 — LP のフォルダを GitHub にアップ。
> このフォルダ(index.html を含む)を GitHub の新規リポジトリ「my-lp」に
> アップしたい。git init → .gitignore(node_modules, .env を除外)→
> README → commit → gh でリポジトリ作成 → push まで実行して。gh コマンド が無ければ brew install gh。Claude Code に頼めば 1 分で済みます。
最初の .gitignore は絶対作る
==.env と node_modules/ を .gitignore に入れずに push する のはデプロイ初心者最大の地雷。API キー入り .env を public リポジトリに push すると数時間以内に bot がスキャンして悪用== されます。
最初のデプロイ — 静的 HTML(最速 3 分)
Vercel ダッシュボード → 「Add New… → Project」 → GitHub リポジトリを選択。Vercel が「Framework Preset」を自動検出(素の HTML なら「Other」)。何もいじらず「Deploy」 を押すだけ。
✓ Cloning github.com/your-name/my-lp...
✓ Building...
✓ Deploying...
🎉 Production: https://my-lp-xxxxxxxx.vercel.app3 分以内に URL が発行。ブラウザで開けば世界からアクセス可能。
フレームワーク別の自動検出
| フレームワーク | Build Command | Output | 備考 |
|---|---|---|---|
| 静的 HTML | (なし) | ./ | そのまま |
| Next.js | next build | .next | 完全自動 |
| Astro | astro build | dist | 完全自動 |
| React Router v7 | react-router build | build/client | 自動 |
| Vite | vite build | dist | 自動 |
==package.json があるだけで== 自動ビルド。手動設定は基本不要。vercel.json はリダイレクトやヘッダーが必要な時だけ書きます。
> Next.js 15(App Router)のプロジェクトを Vercel にデプロイしたい。
> 設定ファイルと、環境変数登録も含めた最短手順を教えて。カスタムドメインの設定
==xxxx.vercel.app の URL は便利ですが、本番運用では 独自ドメイン== を当てたいところ。
Step 1 — ドメイン取得
| レジストラ | 特徴 | .com 年額 |
|---|---|---|
| Cloudflare Registrar | 卸値・原価販売 | 約 ¥1,500 |
| お名前.com | 日本語サポート | 初年 ¥1,000 / 更新 ¥1,500 |
Cloudflare Registrar が事実上の最適解。「初年度安く、更新で 2 倍」のような罠がない。
Step 2 — Vercel でドメイン追加
Vercel → Settings → Domains → example.com を Add。必要な DNS レコードが表示されます。
Type: A Name: @ Value: 76.76.21.21
Type: CNAME Name: www Value: cname.vercel-dns.comStep 3 — レジストラ側で DNS 設定
Cloudflare 等の DNS 管理画面で A レコード と CNAME レコード を追加。反映には数分〜数時間(DNS 伝播)。
> example.com を Vercel に向けたい。レジストラは Cloudflare Registrar。
> A / CNAME / TXT の設定値と、www あり / なし両対応の手順を教えて。SSL は Let's Encrypt で自動発行。手動更新は不要。DNS が通れば https://example.com で即アクセス可能。
サブドメイン(app.example.com)は CNAME だけで OK。アペックスドメイン(example.com)は A レコード必須。==まず www で公開、後でアペックスに広げる== のがトラブル少なめ。
環境変数の管理 — API キーを守る
フォーム送信 / Stripe 決済 / OpenAI API / DB 接続など、外部サービスを使う瞬間から 環境変数 の世界に入ります。
環境変数 とは コードに直接書きたくない秘密の値(API キー / DB パスワード / Webhook シークレット)。コードに書いて GitHub にコミットすれば、世界中の bot がスキャンしに来る と思ってください。
# ❌ 絶対 NG
const apiKey = "sk-proj-xxxxxxxxxxxxxxxx";
# ✅ 正しい
const apiKey = process.env.OPENAI_API_KEY;Vercel → Settings → Environment Variables で登録。Key は 大文字スネーク(OPENAI_API_KEY)、Environment は Production / Preview / Development 全部にチェック。ローカルでは ==.env.local に同じ値、ただし .gitignore 必須==。
# .gitignore
.env
.env.local
.env.*.local> Next.js に OpenAI API を組み込む。OPENAI_API_KEY を Vercel と .env.local
> の両方に登録、サーバー側のみで使う構造、.gitignore 追加、未設定時の
> 起動時エラーガードまで含めた最短手順を教えて。NEXT_PUBLIC_ プレフィックスの罠
Next.js の NEXT_PUBLIC_xxx は ブラウザバンドルに焼き込まれる。NEXT_PUBLIC_OPENAI_API_KEY で登録すると DevTools から誰でも API キーが見える。==秘密の値に NEXT_PUBLIC_ は絶対付けない== — 入門者が踏みがちな地雷 No.1。
プレビューデプロイの活用
Vercel の真骨頂。main 以外のブランチに push すれば自動で URL 発行。
git checkout -b feature/new-hero
git push origin feature/new-hero
✓ Preview: https://my-lp-git-feature-new-hero-xxx.vercel.appmain マージ前に本番と同じ環境でレビュー できます。さらに プレビュー URL を 5 個並列で作れる ので、Meta / Google 広告のリンク先を hero-a / hero-b / hero-c の 3 種類に振り分け、CVR が勝った hero を main にマージ — Vercel × LP の最強運用パターン。
GitHub PR を作れば Vercel bot がプレビュー URL を自動でコメント。クライアントに「このリンクから確認お願いします」だけで済む。
プレビューは「公開コストゼロ × 検証速度 10 倍」 の組み合わせ技。LP は 1 個作って終わり ではなく 5 個作って勝ち残った 1 個を残す 競技。Vercel プレビューはその 専用スタジアム です。
失敗パターン
実戦で詰まる代表的な 6 つ。先に知っておくと夜中まで戻れなくなる事態を避けられます。
失敗 1 — ビルドエラー(ローカルで動くのに本番で死ぬ) 最頻発の悲劇。原因は Node バージョン違い(ローカル 22 / Vercel 20)/ ファイル名の大文字小文字(Mac は無視、Vercel の Linux は区別)/ TypeScript 型エラーを無視 など。ビルドログを丸ごと Claude Code に投げる のが最速の解決法。
失敗 2 — 環境変数漏れ
.env.local を ==.gitignore に入れずに push==。GitHub Secret Scanning が即検知。コミット履歴からの完全削除には git filter-repo か bfg-repo-cleaner、消したつもりでもキャッシュに残るので API キーは必ずローテーション。
失敗 3 — API キー公開
==NEXT_PUBLIC_xxx で秘密キー公開==、<script> 直書き、フロント fetch URL に key=xxx 付与など。秘密の値は必ずサーバーサイド(API Route / Edge Function)で使う。
失敗 4 — DNS 反映待ちで焦る
DNS 変更は 数分〜最大 48 時間。焦って何度も設定を変えると逆に伝播が遅くなる。dig example.com で進捗確認しつつ 1 時間は黙って待つ。
失敗 5 — 無料枠超過で課金 Hobby プランは 商用利用禁止。会社の業務 LP は規約違反で 突然停止 されることも。ビジネス用途は Pro($20/月) にしましょう。
失敗 6 — index.html がルートに無い サブフォルダにあると Vercel が見つけられず 404。Output Directory を明示する。
「ローカルで動く」は何の保証にもならない。本番は Linux / Node 20 / 別 IP。必ず プレビュー URL で 1 回確認 してから main マージ。これだけで失敗の 7 割は防げます。
コスト管理 — 無料枠の境目
Vercel Hobby(無料)の主な上限は次のとおり(2026 年時点目安)。
| 項目 | 無料枠 | 超えると |
|---|---|---|
| 帯域 | 100 GB / 月 | 停止 or Pro 強制 |
| ビルド時間 | 6,000 分 / 月 | ビルド不可 |
| Edge Function | 100 万回 / 月 | 実行制限 |
| 商用利用 | 不可 | 規約違反で停止 |
切り替えタイミング
- 月 1 万 PV まで — Hobby(無料)で十分
- 月 10 万 PV — Pro($20)にアップ、商用 OK
- 月 100 万 PV 超 — Cloudflare Pages に移すとコスト効果絶大
- 決済 / 顧客データ — 規約上 Pro 以上 + 監査ログを取れる構成に
まとめ — 5 分デプロイの体験を必ず 1 回する
このレッスンで押さえてほしいポイントを 7 つ並べます。
- デプロイのコストは 5 分・無料 になった — レンタルサーバー時代は終わった
- Vercel が初手のデフォルト。Next.js / Astro / React Router v7 すべて自動検出
- GitHub に push すれば公開 される。FTP も SSL 取得も不要
- カスタムドメイン は Cloudflare Registrar で取得、DNS は A / CNAME を 2 行追加するだけ
- 環境変数 は Vercel ダッシュボードと
.env.localの両方に登録、NEXT_PUBLIC_ に秘密の値は絶対付けない - プレビューデプロイ を A/B テストの基地として使うと、LP の改善サイクルが激速になる
- Hobby は個人用・Pro は商用・Cloudflare Pages は大規模 — 用途で使い分ける
章末演習 — 読み終わるだけで終わらせず、ここで必ず 1 回本番公開してください。所要 30 分。
- 6-1 で作った LP の HTML を GitHub の新規リポジトリ に push してください(Claude Code に手順を投げて OK)
- Vercel にサインアップ し、そのリポジトリをインポート、==
xxxx.vercel.appの URL を取得== してください - カスタムドメイン を持っていれば追加。無ければ「次に取得したいドメイン名」を 3 つメモしてください
- 環境変数(ダミーで OK、例
MY_TEST_VAR=hello)を 1 つ登録し、コード側で呼び出してプレビューデプロイで動作確認 - 失敗パターンの 6 項目 を見直し、自分のプロジェクトに当てはまるものを 1 つ直してください
- プレビュー URL を 同僚 1 人に共有 し、感想を 1 つもらってきてください
<Quiz question="Vercel でカスタムドメインを設定するとき、最初に必要な DNS レコードの組み合わせは?" options={["A レコード(@ → 76.76.21.21)と CNAME レコード(www → cname.vercel-dns.com)","MX レコードと TXT レコードのみ","Vercel 側で全部やってくれるので DNS 設定は不要"]} answer={0} />
<Quiz question="Next.js で API キーなど秘密の値を環境変数にするとき、絶対やってはいけないことは?" options={["変数名に NEXT_PUBLIC_ プレフィックスを付ける(ブラウザに公開される)","Vercel のダッシュボードに登録する",".env.local に書いてローカルで読み込む"]} answer={0} />
<Quiz question="Vercel の Hobby プラン(無料)で禁止されているのはどれ?" options={["商用利用(顧客向けサービス、ビジネス用 LP の本番公開)","GitHub と連携すること","プレビューデプロイを使うこと"]} answer={0} />
公開した URL は SNS や社内チャットで早めに共有 しましょう。フィードバックがもらえると、次の改善点が一気に明確になります。「まず公開、改善は後」が AI 時代のデプロイ哲学です。
<Checklist id="intro-ch4-6" items={["業務自動化(レポート、Excel、メール)を試した","CLAUDE.md を作成してプロンプトスキルを磨いた","Web アプリを作成して公開した"]} />
次の第 7 章では、データ分析とダッシュボード作成 を学びます。「作る」「公開する」の次は「データで判断する」。Claude Code に CSV / SQL / グラフ生成を任せて、経営判断レベルの分析を 5 分で出せるようになります。
次のステップ
- 7-1: 競合調査を自動化|市場リサーチ — 第 7 章の入口。Claude Code でデータを取りに行く実践に進みます
- 4-1: 営業レポートを自動生成する手順 — 業務自動化の発想を、作った Web アプリと組み合わせるヒントになります
- 8-1: MCP とは — Vercel と直結する次の段階、外部ツール連携を仕込みたい方はこちらへ