個人開発の認証実装完全ガイド — Clerk / Supabase Auth / NextAuth 2026年版比較

認証は「選ぶ」であって「作る」ではない
個人開発で最もコスパが悪いのが 認証の自作です。
- パスワードハッシュ化(bcrypt/argon2)
- メール検証フロー
- パスワードリセット
- セッション管理
- OAuth(Google/GitHub)連携
- 2FA対応
これを全部実装すると軽く2週間。しかも セキュリティバグ1つで全データ吹き飛ぶ リスクを抱えます。
最初のSaaS(LaunchKit)で認証を自作しようとして3日詰まった経験があります。結局 Supabase Auth に切り替えて30分で完成。「自作したい欲」は技術的好奇心だけ。プロダクトの価値には一切寄与しません。
この記事でわかること:
- 個人開発向け認証サービス3択の料金・機能比較
- 実装コード量の実測値
- ベンダーロックインの強さと乗り換えコスト
- ケース別の選び方(SaaS / ブログ / 管理画面)
2026年の3択:Clerk / Supabase Auth / NextAuth
結論を先に
| 用途 | 推奨 | 理由 |
|---|---|---|
| 初めての個人開発SaaS | Supabase Auth | DBと同居、月5,000 MAUまで無料 |
| UI品質重視・早く出したい | Clerk | 最速10分、UIコンポーネント完備 |
| フルコントロールしたい | NextAuth v5 | 完全OSS、DB自由 |
料金比較(2026年4月時点)
各サービスの無料枠と有料プランの切り替えラインを整理します。
| サービス | 無料枠 | 有料プラン開始 | 主要機能 |
|---|---|---|---|
| Clerk | 月10,000 MAU | $25/月〜(Pro) | UIコンポーネント、組織機能、2FA |
| Supabase Auth | 月50,000 MAU | $25/月〜(Pro) ※DBとセット | RLS統合、OAuth、Magic Link |
| NextAuth v5 | 無制限(OSS) | $0 ※DBコスト別 | プロバイダー20種以上、JWT/DB両対応 |
個人開発の実情に当てはめる
月収¥5万を目指す個人開発の規模感だと、有料ユーザー10〜100人程度が現実的です。そのとき:
- Clerk の無料枠 10,000 MAU → 個人開発では絶対使い切らない
- Supabase Auth の無料枠 50,000 MAU → 同上。DBも無料枠に収まるケース多い
- NextAuth → いつまでも無料。ただしDB(PlanetScale/Neon等)は別途必要
つまり どのサービスも料金で選ぶフェーズではない。実装速度と保守性で選びます。
実装コード量の実測値
同じ機能(メール+パスワード登録、Googleログイン、ログアウト)を3つで実装した場合の行数:
| サービス | LoC(行数) | セットアップ時間 |
|---|---|---|
| Clerk | 約30行 | 10分 |
| Supabase Auth | 約80行 | 30分 |
| NextAuth v5 | 約150行 | 2時間 |
Clerk の最小実装例
// app/layout.tsx
import { ClerkProvider } from '@clerk/nextjs';
export default function RootLayout({ children }) {
return (
<ClerkProvider>
<html>{children}</html>
</ClerkProvider>
);
}
// app/sign-in/page.tsx
import { SignIn } from '@clerk/nextjs';
export default () => <SignIn />;
これで完成。UIは Clerk のデフォルト。美しい。
Supabase Auth の最小実装例
// lib/supabase.ts
import { createClient } from '@supabase/supabase-js';
export const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
);
// signup
await supabase.auth.signUp({ email, password });
// Google OAuth
await supabase.auth.signInWithOAuth({ provider: 'google' });
UIは自作が必要。ただし @supabase/auth-ui-react を使えば Clerk 並みに短くなる。
NextAuth v5 の最小実装例
// auth.ts
import NextAuth from 'next-auth';
import Google from 'next-auth/providers/google';
import Credentials from 'next-auth/providers/credentials';
export const { auth, handlers, signIn, signOut } = NextAuth({
providers: [
Google,
Credentials({
async authorize(credentials) {
// 自前でDBを検索しパスワード検証
return await verifyCredentials(credentials);
}
})
],
session: { strategy: 'jwt' }
});
DB接続、パスワードハッシュ化、セッション管理は自前。
ベンダーロックイン度
乗り換えるときの辛さで並べると:
- Clerk: 強ロックイン
- ユーザーデータは Clerk のサーバー
- 乗り換え時は全ユーザーに再登録依頼が必要
- Supabase Auth: 中ロックイン
- データは自分の Supabase プロジェクトに保存
- RLS(Row Level Security)と密結合
- Supabase を捨てるなら認証も書き直し
- NextAuth: 弱ロックイン
- DB は自分のもの
- プロバイダーのみ差し替え可能
個人開発の初期は Clerk / Supabase Auth の強〜中ロックイン は許容してOK。ロックインが嫌で自作するより、さっさと出して検証する方が10倍価値があります。
ケース別の選び方
SaaS(課金あり・ユーザー管理必須)→ Supabase Auth
理由:
- RLS でDBレベルのアクセス制御ができる
- Stripe + Supabase のパターンが豊富(ググれば記事多数)
- 管理画面ダッシュボードが Supabase 側に揃っている
nextjs-supabase-indie-dev-guide-2026 で具体的な構築手順を解説しています。
UI品質重視・早く出したい → Clerk
理由:
- ログイン/登録/プロフィール画面が美しいまま手に入る
- 組織(Organization)機能が標準装備 → B2B SaaS 向き
- Webhooks で外部DB同期できる
ブログ・管理画面・社内ツール → NextAuth
理由:
- OSS で料金ゼロ
- 自分のDBで完結
- プロバイダー20種以上から選べる
で、どう稼ぐ?
認証を実装したら終わりではありません。認証の先に 「どう稼ぐか」 があります。
認証 → 有料化への最短ルート
- 認証を実装(Clerk / Supabase Auth / NextAuth のいずれか)
- Stripe サブスクリプションを繋ぐ
- RLS or Middleware で有料機能をゲート
- 無料トライアル → 有料転換の導線
個人開発で月¥5万稼ぐラインに乗せるには、認証 + 課金ゲート の2つが最小セットです。認証だけ実装して満足すると、ユーザー登録数は増えても収益ゼロの典型パターンにハマります。
収益シミュレーション
| プラン | 単価 | 有料転換率 | 月収 |
|---|---|---|---|
| ¥500/月 | 100人登録 → 10人有料 | 10% | ¥5,000 |
| ¥980/月 | 200人登録 → 15人有料 | 7.5% | ¥14,700 |
| ¥1,980/月 | 500人登録 → 30人有料 | 6% | ¥59,400 |
無料枠5万MAU(Supabase Auth)の中で、月¥5万は十分達成可能です。
Next Step
次に読むならこの導線です
【第12回】夜寝てる間に Claude Code が記事を書き上げる構成 — 月 ¥5K で動く全コード
Claude Codeラボ全12話の集大成。Skills/MCP/サブエージェント/Hooks/リモート運用を統合した「自走する Claude 自動化」を、月 ¥5K の実コストで動かす全構成を公開。寝てる間に競合調査・記事下書き・PR まで自動化する 6 層アーキテクチャの完成版。
【第10回】Claude Code × Supabase で管理画面を30分で生成する Skill 実装ガイド
Supabase のテーブルを参照して管理画面を自動生成する Skill を、実コード付きで解説。Claude Code が DB スキーマから Next.js 管理画面を30分で生成する仕組みを公開します。
【第12回】夜寝てる間に Claude Code が記事を書き上げる構成 — 月 ¥5K で動く全コード
Claude Codeラボ全12話の集大成。Skills/MCP/サブエージェント/Hooks/リモート運用を統合した「自走する Claude 自動化」を、月 ¥5K の実コストで動かす全構成を公開。寝てる間に競合調査・記事下書き・PR まで自動化する 6 層アーキテクチャの完成版。
Claude Code で 0→MVP を1日で作る全記録 — recipe-ai Build in Public
Claude Codeを使い、YouTube料理動画からレシピを自動抽出するAIアプリ「recipe-ai」を0からMVPまで1日で構築した全記録。CLAUDE.md設計、API実装、Supabase連携、Vercelデプロイ、Stripe課金導入までの工程を時系列で公開。
次の実験記録も追う
Claude Code × 個人開発の実験ログ、失敗、判断変更をまとめて追いたい人向けに、月次でLab Freeを届けます。
masatoman のメルマガ — 毎週月曜の朝に 1 通
masatoman.net で今週公開した記事の中から 1 本を、読者目線で深掘りした手紙が届きます。「自分も同じことやってる」「ここで詰まってた」が見つかる予告編。
この記事が役に立ったらシェア