Skip to content

Vercel Edge Functions対応 + モノレポ構成への移行 #59

@oumelab

Description

@oumelab

Vercel Edge Functions対応 + モノレポ構成への移行

📋 概要

現在のCloudflare Pages Functions版を維持しつつ、Vercel Edge Functions対応版を追加。モノレポ構成に移行することで、両プラットフォームでのパフォーマンス比較を可能にする。

🎯 目的

  • プラットフォーム比較: Cloudflare vs Vercelの実測データ取得
  • 学習機会: モノレポ管理とTurborepoの実践
  • ポートフォリオ価値: 複数プラットフォーム対応の実装例
  • 既存版の保護: mainブランチは完全保護、フォークユーザーへの影響ゼロ

🏗️ 最終的なアーキテクチャ

demo-react-event-calendar/
├── turbo.json                    # Turborepo設定
├── package.json                  # ルートWorkspace
├── packages/
│   ├── frontend/                 # 共通フロントエンド(Vite + React)
│   ├── shared/                   # 共通型定義・ロジック
│   ├── backend-cloudflare/       # Cloudflare版
│   └── backend-vercel/           # Vercel版(新規)
└── db/                           # 共通データベーススキーマ

🗄️ データベース戦略

開発環境: react-event-calendar-dev(共有)
プレビュー: react-event-calendar-staging(共有)

本番環境:
├── Cloudflare: event-app-prod(既存)
└── Vercel: vercel-prod(新規作成)

🌳 ブランチ戦略

main                    # Cloudflare版(既存・保護)
└── フォークユーザーに影響なし

monorepo-structure      # 両プラットフォーム対応版(新規)
└── 比較検証用

📋 実装フェーズ

Phase 1: 基盤構築

  • Phase 1-1: ブランチ戦略とバックアップ #60 ブランチ戦略とバックアップ(0.5-1日)
  • #[Issue番号] Turborepo導入とワークスペース設定(1日)
  • #[Issue番号] 既存ファイルの移動(1日)
  • #[Issue番号] TypeScript設定の統一(1日)

Phase 2: Vercel実装

  • #[Issue番号] Vercelデータベースと環境構築(1日)
  • #[Issue番号] Vercel Edge Functions API実装(4-5日)

Phase 3: 整備・最適化

  • #[Issue番号] 共通utilsの抽出(1日)
  • #[Issue番号] CI/CD設定(1日)
  • #[Issue番号] パフォーマンス比較ツール作成(1日)
  • #[Issue番号] ドキュメント整備(1日)

📊 全体スケジュール

Phase 内容 所要時間 累計
Phase 1 基盤構築 4-5日 5日
Phase 2 Vercel実装 5-6日 11日
Phase 3 整備・最適化 4日 15日

合計: 約3週間(14-15日)

🎯 主要な技術スタック

カテゴリ 技術
モノレポ管理 Turborepo
フロントエンド Vite + React(変更なし)
バックエンド(CF) Cloudflare Pages Functions
バックエンド(VL) Vercel Edge Functions
データベース Turso(libSQL)
認証 Better Auth
画像保存(CF) Cloudflare R2
画像保存(VL) Vercel Blob

✅ 最終的な成果物

  • mainブランチ(Cloudflare版・既存)
  • monorepo-structureブランチ(両対応版)
  • パフォーマンス比較レポート
  • 完全なドキュメント

🔗 関連リンク

📝 注意事項

フォークユーザーへの影響

  • mainブランチは一切変更なし
  • ✅ 既存のセットアップ手順はそのまま有効
  • ✅ フォーク済みプロジェクトに影響なし

ブランチの使い分け

  • main: 安定版として維持(Cloudflare専用)
  • monorepo-structure: 実験的な統合版(両対応)

開始日: [開始時に記入]
完了予定: 開始から約3週間後
担当者: @oumelab
優先度: Medium
ラベル: enhancement, infrastructure, platform-comparison

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions