〜超ど初心者の私が 2 日間迷子になって悟ったリアルな教訓〜
はじめに
この記事は、**GitHub + Vercel + Claude Code ** の組み合わせでアプリ開発を始める初心者に向けた警告とアドバイスです。
私は今回、Web 開発初心者として以下のような致命的な勘違いをしていました:
- 「サーバーが勝手にデータ持ってくれるんでしょ?」
- データベースの意味が分かっていなかった
- NEON(PostgreSQL)とSupabase Authを混在させて構築
- Auth を途中で Google SDK → Supabase Auth に変更して破綻
- さらに DB を NEON → Supabase へ移行するハメに…
結果として、
丸 2 日間を完全に無駄な構造変更に消費しました。
結論
GitHub × Claude Code × Vercel の構成なら
データベースは最初から Supabase に統一すべき
(本当に心からそう思います)
なぜ Supabase 一択なのか(初心者向けに整理)
1. Auth と DB が最初から“統合設計”されている
Supabase Auth のユーザー ID(UUID)が
そのまま DB の RLS(行レベルセキュリティ)で使える。
Neon や一般的な Postgres では、
認証と DB を自分で接続・管理しなければいけない。
初心者には絶対に無理。これではまって沼リマした。
2. SDK ひとつで全部つながる
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
これだけで:
- Google / Apple / GitHub ログイン
- セッション管理
- Postgres DB
- ストレージ
- RLS
- リアルタイム
- Edge Functions
全部一体化して動く。
3. GitHub・Vercel との相性が最高
- 環境変数の名前
- サーバーレスとの相性
- ログイン後のコールバックURL
- CORS・セッション管理
実際に使ってわかったけれど、
Supabase と Vercel の相性は本当に強力。
4. 区切りの悪い“途中から Auth を変える”と地獄になる
今回の私の例:
- Google SDK(GIS)でログイン
- 途中から Supabase Auth に変更
- セッションが混乱
- DB と Auth が接続されていない
- フロントもバックも全て手をつける必要が・・・
途中で認証を変えるのは最悪の選択。
最初から Supabase Auth 一択にすべきでした。
私が実際に迷い込んだ“地獄の構成”
以下は絶対に真似してはいけない:
- 認証:Google Identity Services
- DB:NEON PostgreSQL
- API:独自 JWT
- セッション:Cookie で手書き
- UI:古い構成のまま
この構成は
Claude Code に 30 回投げても動きませんでした。
Supabase に統一した瞬間、
すべて一気に解決。
初心者へのアドバイス(未来の私へ宛てて書く)
① データベースと認証は同じサービスに統一する
→ Supabase Auth を選んだら DB も Supabase にすること。
② 最初に構成を決めて途中から変えない
→ 認証方式の変更は破壊的すぎる。
③ “サーバーがデータを持ってくれる”という勘違いを捨てる
→ データベースは別サービス。
→ サーバーは DB にアクセスするだけ。
④ RLS が標準搭載されているサービスを選べ
→ セキュリティ管理の作業が激減する。
⑤ Supabase は初心者でもプロでもメリットしかない
→ 一貫した設計
→ SDK ひとつ
→ ドキュメント豊富
実際にあった「失敗例」
- コールバック URL を設定していなかった
- Auth と DB が別でセッション取得不能
- ロール取得が API → 404 / 401 の嵐
- ログインしても UI が開かない
- Vercel 上で Cookie が復元されない
- 無限リダイレクト地獄
- 何が正しくて何が壊れているのか判断できない
最後にわかったのは…
Supabase ひとつにまとめれば全部消える
という事実でした。
この記事の対象者
- GitHub × Claude Code × Vercel で開発を始めた初心者
- Supabase と Neon の違いが曖昧な人
- Auth と DB を混在させてしまっている人
- ログイン後に画面が開かない人や開くのが遅い人
- 「なぜ動かないのか分からない」状態の人
最後のメッセージ
未来の私へ。
Supabase を最初から使え。
Auth と DB を分離するな。
構成変更は地獄の始まり。
SDK はひとつに統一せよ。
「知らなかった」では済まない。
この記事が
あなたの 2 日間と地獄のデバッグ時間を救いますように。