💡

AIと二人三脚!GeminiとVercelで爆速ポートフォリオサイト構築

Web開発 AI

はじめに

自分のポートフォリオサイトが欲しいと思いつつも、デザインや細かな実装の面倒さから、なかなか重い腰が上がらずにいました。

そこで、今回は「AI フル活用で、理想のサイトを構築しました。これは、「Gemini」に、面倒な部分をすべて任せてみたサイト構築の全記録です。

完成したサイトはこちらからご覧いただけます!!ぜひ見ていただきたいです!!

サイト作成の流れ

要件定義

AI による要件定義のヒアリング 最初は、以下のプロンプトで要件定義の作成から始めました。

自分のポートフォリオサイト(自己紹介や経歴、技術スタック、自分の記事)を作りたいです。
要件定義から固めたいので、私に質問をしてください。
AIからの返答

📋 ウェブサイト制作のための要件定義チェックリスト

ウェブサイト制作を成功させるためには、はじめに「何を、なぜ、誰のために、どのように作るのか」を明確にする「要件定義」が不可欠です。

なぜ要件定義が重要なの?
要件定義をしっかり行うことで、プロジェクトの方向性が明確になり、無駄な作業を避けることができます。また、完成後の「思っていたのと違う」を防げます。

1️⃣ サイトの目的とゴール(なぜ作るのか?)

目的の明確化

  • ☐ 自分の作品やスキルを紹介したい(ポートフォリオサイト)
  • ☐ 会社やお店の情報を発信したい(企業サイト、店舗サイト)
  • ☐ 知識や情報を共有したい(ブログ、情報サイト)
  • ☐ 商品やサービスを販売したい(EC サイト)
  • ☐ 仲間と交流する場を作りたい(コミュニティサイト)
  • ☐ 個人的なブランディングを高めたい

具体的なゴールの設定

  • ☐ 月間 1,000 ページビューを達成する
  • ☐ 毎月 10 件のお問い合わせを獲得する
  • ☐ 毎月 50 人のメールマガジン登録者を集める
  • ☐ 商品を毎月 100 個販売する

2️⃣ ターゲットユーザー(誰に見てもらいたいか?)

ターゲット層の設定

  • 年齢層:20 代〜30 代の若手エンジニア
  • 職業:学生、新人エンジニア、転職を考えている人
  • 興味・関心:プログラミング、技術トレンド、キャリア

ユーザーのニーズ

  • ☐ どんな技術スキルを持っているか知りたい
  • ☐ 実際のプロジェクト経験を見たい
  • ☐ 技術的な知見を学びたい

3️⃣ 提供するコンテンツとページ構成(何を見せるか?)

主要なコンテンツ

  • ☐ 文章(ブログ記事、技術記事)
  • ☐ 画像(プロフィール写真、プロジェクトスクリーンショット)
  • ☐ 動画
  • ☐ 音声(ポッドキャストなど)

必要なページ(サイトマップ)

  • ☐ トップページ
  • ☐ プロフィール
  • ☐ ブログ / 技術記事
  • ☐ サービス / 商品一覧
  • ☐ 料金プラン
  • ☐ 実績 / お客様の声
  • ☐ お問い合わせフォーム
  • ☐ プライバシーポリシー

4️⃣ 必要な機能(どんなことができるようにするか?)

基本機能

  • ☐ お問い合わせフォーム
  • ☐ ブログ投稿・編集機能(CMS)
  • ☐ SNS 連携(シェアボタン、タイムライン埋め込み)
  • ☐ アクセス解析ツールの導入
  • ☐ サイト内検索機能
  • ☐ 多言語対応

5️⃣ デザインとブランディング(どんな印象を与えたいか?)

与えたい印象・雰囲気

  • ☐ シンプル、モダン
  • ☐ 信頼感、クリエイティブ
  • ☐ 温かい、高級感

デザインの方向性

  • キーカラー: 緑を基調とした色系
  • フォント: 日本語は Noto Sans JP、英語は Inter で読みやすく
  • レイアウト: 2 カラム構成でコンテンツを整理

参考サイト(ベンチマーク)

  1. Zenn.dev - 情報設計とシンプルさ
  2. GitHub - 開発者向けの UI/UX
  3. Qiita - 技術記事の見せ方

6️⃣ 運用と保守(どうやって育てていくか?)

運用体制

  • コンテンツ更新者: 自分
  • 更新頻度: 月 1〜2 回の技術記事投稿

インフラ

  • サーバー: Vercel(静的サイトホスティング)
  • ドメイン名: izumin-tech.jp
  • CMS: Astro Content Collections(Markdown)

予算

  • 初期費用: 0 円(無料ツール中心)
  • 月額費用: ドメイン代 約 100 円/月

この質問を起点に、Gemini からのヒアリングに答えていき、サイトの目的やターゲット、必要な機能といった要件が明確になりました。

具体的な要件定義

🎨 理想の UI デザイン要件まとめ

1️⃣ デザインコンセプト:「ミニマル × グリーン」

なぜZenn.devを参考にしたの?
余白を活かした無駄のないミニマルでクリーンなデザインが、技術系サイトとして非常に優れているからです。読みやすさを重視しました。

🎨 カラーテーマ

  • 背景: 白を基調としたライトモード
  • アクセントカラー: 緑系でオリジナリティを演出
  • 印象: 落ち着いた信頼感のあるデザイン

2️⃣ サイトの基本レイアウト

📱 各エリアの役割

  • ヘッダー: サイトタイトル、ナビゲーション、SNS アイコン
  • メインコンテンツ: 記事本文、自己紹介などの主要コンテンツ
  • サイドバー: 補足情報、プロフィール、目次

3️⃣ 各ページの UI 詳細

🏠 A. トップページ(自己紹介ページ)

1. 自己紹介エリア

  • プロフィール写真
  • 簡潔な自己紹介文
  1. スキル紹介エリア

    • 言語(JavaScript, TypeScript, Go)
    • フレームワーク(React, Astro, Next.js)
    • インフラ(AWS, Docker, Vercel)
  2. 最新記事エリア

    • 最新記事 3 件をカード形式で表示

📝 B. 記事一覧ページ

レイアウト設計

  • PC 表示: 2 列のグリッドレイアウト
  • 記事カード: 左側にアイキャッチ、右側に記事情報

📖 C. 記事ページ

記事を読みやすくするポイントは?
メインコンテンツで記事に集中できるようにし、サイドバーで目次を表示。スクロールしても目次が追従するので、長い記事でも読みやすくなります。

構成要素

  • メインコンテンツ: 記事タイトルと本文
  • サイドバー: 自動生成される目次(h1, h2, h3 から)
  • 機能: 目次の追従スクロール対応

💡 まとめ

最終的な方向性:
「Zenn.devの優れた情報設計とシンプルさを参考にしつつ、
緑をキーカラーとしたオリジナリティのある、
ミニマルな2カラム構成のポートフォリオサイト」

✅ 技術者らしいクリーンなデザイン ✅ 読みやすさを重視した情報設計 ✅ 緑色でオリジナリティを演出

ディレクトリ構成

my-portfolio/
└── src/
    ├── components/
    │   ├── Header.astro
    │   ├── Sidebar.astro
    │   └── Footer.astro
    ├── layouts/
    │   └── Layout.astro
    └── pages/
        ├── index.astro                 # トップページ
        └── articles/
            ├── index.astro             # 記事一覧ページ
            └── [slug].astro          # 記事詳細ページ(雛形)

UI のプロトタイプ作成と微調整

固まった要件定義を元に、Gemini が UI のプロトタイプを生成。ここからは、以下のような対話によってプロトタイプの微修正を行いました。

私:
やっぱりこの緑は、もう少し濃い方がいいな
AI:
承知しました。緑色を #10b981 から #059669 に変更します。
より深みのある緑色で、プロフェッショナルな印象になりますね。
私:
このコンポーネントは要らないです。代わりに経歴を入れてほしい
AI:
はい、該当のコンポーネントを削除して、
経歴セクションを追加します。時系列で表示しますか?

具体的な修正指示を繰り返し、最終的に納得のいく UI デザインが完成しました。

コード生成とローカル環境構築

完成した UI デザインを元に、Astro のディレクトリ構成と全コードを生成してもらいました。ディレクトリ作成の手間すら省きたかったので、mkdir コマンドもまとめて作ってもらい、ターミナルに貼り付けるだけでローカル環境が完成。 あとはエディタで、細かい文言を自分の言葉に修正するだけでした。

※静的なサイトでパフォーマンスが良いらしいので Astro を選びました

GitHub へのプッシュと Vercel でのデプロイ

完成したコードを GitHub リポジトリにプッシュし、Vercelと連携。いくつかのボタンをクリックするだけで、数分後にはサイトがインターネット上に公開されていました。

参考

※github リポジトリとの連携で簡単にデプロイ出来るのと、サーバー代が無料なので Vercel にしました

独自ドメイン設定

最後に、お名前.com で取得したドメインを、Vercel の管理画面で設定。これも驚くほど簡単で、ネームサーバーの値をコピー&ペーストするだけでした。

参考

まとめ

AI との共同作業は、UI の叩き台作りや面倒な定型作業を任せられるため、非常に効率的でした。これにより、私は「何を伝えたいか」という、より本質的な部分に集中できました。

▼ 今回作成したサイトの全コードは、こちらのリポジトリで公開しています。
https://github.com/takuma3737/my-portfolio