1️⃣

Day1:Next.js × Vercel で環境構築から初めてのデプロイ

に公開

はじめに

今日、大塚あみさんの著書 『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』 を読み、

「なるべく毎日コードを書いてアウトプットすることで学習を加速させよう」
と決意しました。そこで Day 1 として、
Next.js プロジェクトを Vercel にデプロイ するまでの流れをまとめます。

対象読者

  • Next.js × Vercel を初めて触る人
  • 独自ドメインを付けるべきか迷っている人

今日のゴール

  1. Next.js プロジェクトを作成する
  2. ホーム画面作成
  3. GitHub → Vercel で初めてのデプロイを行う

Next.js プロジェクトの作成手順

# 任意のフォルダで実行
npx create-next-app@latest my-portfolio \
  --typescript \
  --eslint \
  --tailwind \
  --src-dir \
  --import-alias "@/*"
cd my-portfolio
オプション 意味
--typescript TypeScript プロジェクトを生成
--tailwind Tailwind CSS を自動設定
--src-dir src/ 直下に app/components/ を配置
--import-alias @/components/… のようにエイリアスインポートが可能

開発サーバーを起動

npm run dev   # http://localhost:3000 で確認

ホーム画面作成

ディレクトリ構造

my-app/
└─ app/ ← 新しい App Router 用ディレクトリ
├─ layout.tsx ← ルートレイアウト(必須)
├─ page.tsx ← 「/」 に相当するページ

layout.tsx とは?

app/ ディレクトリ以下にに置く「共通レイアウト(包み込む UI)」を定義するファイル
すべての子ページ (page.tsx) や下位レイアウトを 必ず包み込んで表示 します。


Vercel へデプロイ

  1. npm run build で確認
  2. Vercel にアクセス し、右上の “Log in” をクリック。
  3. GitHub アカウントで認証 し、Vercel App をリポジトリにインストール。
  4. ダッシュボードで “New Project” を選択。
  5. my-portfolio リポジトリをクリックしてインポート。
  6. デプロイ設定(フレームワーク検出・ビルドコマンド)はデフォルトで OK。
  7. “Deploy” を押してビルド完了を待つ(数十秒〜1 分)。

Production URL(https://my-portfolio.vercel.app)が表示されたら成功!


npm run devnpm run build の違い

npm run dev   # ホットリロード付き開発サーバー
npm run build # 最適化ビルド。本番用チェックゲート
  • dev は速度優先、エラーを画面にオーバーレイ表示。
  • build は最適化 + ESLint/型チェックを通過しないと失敗 → Vercel も同じ流れ。

Production と Preview の URL

種類 生成タイミング 用途
Production https://my-portfolio.vercel.app main ブランチに push/merge 公開サイト(固定)
Preview https://my-portfolio-git-feature-x-username.vercel.app 他ブランチの push / PR レビュー・テスト用(毎回変わる)

ポイントは 「公式に渡すのは Production URL」。Preview はリンク切れになりやすいので注意。


独自ドメインを付ける or 付けない?

コスト

  • ドメイン取得費用: .com約 ¥1,000〜¥2,000 / 年
  • Vercel への接続 & SSL: ¥0(Hobby プランでも可)

無料(vercel.app)のまま運用するデメリット

  1. ブランド感 & 信頼感が弱い
  2. SEO がやや不利(サブドメイン扱い)
  3. 公式メール を同一ドメインで持てない
  4. プラン制限(転送量 100 GB/月 など)

結論: ポートフォリオや小規模サイトならまず無料で始め、
需要が出てきたら独自ドメイン + Pro プランを検討で十分。

私自身もまずは無料のまま走り出しました。


以上、同じ疑問を持った方の参考になれば嬉しいです 🙌

Discussion