20260501fri
目標: 5日(1日30分)でCloudflare Pagesに公開する
現状サマリー
| ページ / 機能 | 状態 |
|---|---|
/ トップ | ✅ 完成 |
/about | 🔲 骨格のみ(<main> コンテンツなし) |
/works | 🔲 骨格のみ(<main> コンテンツなし) |
/[category] 記事一覧 | ✅ Supabase連携済み |
/[category]/[slug] 記事詳細 | ✅ 実装済み |
/admin/* 記事管理 | ✅ Supabase連携済み |
PostsSection(トップの最新記事) | 🔲 ダミーデータのまま |
前提: Supabase(SSR)を使用しているため静的エクスポート不可。
Cloudflareには @opennextjs/cloudflare を使ってデプロイする。
Day 1 — aboutページのコンテンツ実装
ファイル: app/about/page.tsx
-
<main>ブロックを追加 - 自己紹介文・プロフィール情報をNeovimテーマで記述
-
SkillsSectionなど既存コンポーネントを再利用できるか検討 -
npm run devでレイアウト確認
Day 2 — worksページのコンテンツ実装
ファイル: app/works/page.tsx
- 制作物データを静的配列で定義(タイトル・説明・URL・技術スタック等)
- Neovimテーマに合わせたプロジェクトカードUIを
<main>に実装 -
npm run devでレイアウト確認
Day 3 — PostsSectionのSupabase連携
ファイル: app/components/PostsSection.tsx
-
@/app/lib/supabaseでサーバーサイドフェッチに切り替え - Supabaseの
postsテーブルから最新N件取得 - ダミーデータ配列を削除
-
npm run buildでエラーがないか確認
Day 4 — Cloudflare Pagesデプロイ準備
ゴール: ローカルでCloudflare向けビルドが通る状態にする
インストール
npm install @opennextjs/cloudflare wrangler --save-dev
設定ファイルの作成
wrangler.jsonc(プロジェクトルートに作成):
{
"name": "my-site", // Cloudflare上のプロジェクト名
"compatibility_date": "2025-01-01",
"compatibility_flags": ["nodejs_compat"],
"pages_build_output_dir": ".open-next/assets",
}
open-next.config.ts(プロジェクトルートに作成):
import type { OpenNextConfig } from "@opennextjs/cloudflare";
export default {
default: {},
} satisfies OpenNextConfig;
package.json に追記:
"build:cf": "opennextjs-cloudflare build",
"deploy": "opennextjs-cloudflare build && wrangler pages deploy"
-
npm run build:cfが成功することを確認
Day 5 — Cloudflare Pagesで公開 + 環境変数設定
ゴール: 本番URLでサイトが表示される
手順
-
GitHubにpush
git add -A && git commit -m "add about/works pages, cloudflare deploy config" git push origin master -
Cloudflare Pagesでプロジェクト作成
- Cloudflare Dashboard → Workers & Pages → Create
- GitHubリポジトリを連携
- ビルド設定:
項目 値 Framework preset None Build command npm run build:cfBuild output directory .open-next/assets
-
環境変数を設定(Settings → Environment variables)
変数名 値 NEXT_PUBLIC_SUPABASE_URLSupabaseプロジェクトのURL NEXT_PUBLIC_SUPABASE_ANON_KEYSupabaseのanon key -
初回ビルド・動作確認
- トップ、about、works、記事一覧、記事詳細の各ページを確認
- adminページへのアクセスも確認
完了チェックリスト
- Day 1:
/aboutにコンテンツあり - Day 2:
/worksにコンテンツあり - Day 3: トップの最新記事がSupabaseの実データ
- Day 4:
npm run build:cfが成功 - Day 5: Cloudflare PagesのURLでサイトが表示される