ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-04-30上級

Antigravity × Better Auth でモダンTypeScript認証基盤を構築する

NextAuth疲れに終止符を打つBetter AuthをAntigravityで導入する実践ガイド。スキーマ自動生成・OAuth・RBAC・Passkeyまで本番運用パターンを網羅します。

antigravity362better-auth認証3typescript26nextjs4rbac2

プレミアム記事

「またauth.tsを書き直すのか」— 認証実装でこの感覚に覚えがある方は少なくないと思います。NextAuth が Auth.js v5 になり、API は綺麗になりました。それでも [...nextauth]/route.ts のジェネリックを睨みながら型エラーと格闘する日々は、私にも身に覚えがあります。

そんな中、TypeScript ネイティブで書かれ、フレームワーク非依存で、プラグインで機能を拡張できる Better Auth が、個人開発・スタートアップを中心に確かな支持を集めるようになりました。ここで扱うのはAntigravity の AI エージェントを「認証実装担当」として使い切りながら、Better Auth で堅牢な認証基盤をゼロから構築するまでの全工程を、本番運用で詰まりがちな落とし穴も含めて解説していきます。

なぜ今 Better Auth なのか — Auth.js v5 との設計思想の違い

Better Auth と Auth.js v5 は「ユーザー認証ライブラリ」という入口こそ同じですが、設計思想が大きく異なります。Auth.js は Next.js の App Router と密結合した「フレームワーク統合型」、Better Auth は HTTP ハンドラを公開する「ヘッドレス型」です。

Antigravity でスキャフォールドする際にも、この違いが体感できます。Auth.js は auth.tsroute.ts の両方を扱う必要があり、エージェントへの指示も「両ファイルを同期させて」と但し書きが必要でした。Better Auth は auth.ts 1 ファイルにロジックが集約され、HTTP レイヤは auth.handler を呼ぶだけです。エージェントから見た「認知負荷」が大きく違うのです。

私が個人開発で乗り換えを決めたのは、次の3点が決定打になりました。

  • データベーススキーマが宣言的に生成される: Drizzle や Prisma のスキーマファイルが CLI から自動出力される
  • Passkey / Magic Link / 2FA がプラグインで素直に乗る: コアを汚さずに機能を追加できる
  • エッジランタイムで動く: Cloudflare Workers / Vercel Edge で破綻しない

「Auth.js でも同じことはできる」のは事実です(Auth.js v5 側の最新ベストプラクティスは Antigravity × Auth.js v5 認証実装ガイド にまとめています)。ただ、できる「やり方」の数が多すぎて、コミュニティの記事ごとに作法が違うのが負担でした。Better Auth は「正解の型」が比較的固定されている分、Antigravity に学習させやすいと感じています。

前提環境とプロジェクトの準備

本記事のサンプルは Next.js 16(App Router)+ TypeScript 5.6 + Drizzle ORM + Cloudflare D1 を前提に進めます。データベースアダプタは PostgreSQL(Neon)/ Prisma にも置き換え可能なので、自分の環境に読み替えてください。

# プロジェクトのベース作成
pnpm create next-app@latest my-saas --typescript --app --eslint --tailwind --src-dir
cd my-saas
 
# 認証 + DB ライブラリのインストール
pnpm add better-auth drizzle-orm
pnpm add -D drizzle-kit @types/bun
 
# Cloudflare D1 を使う場合
pnpm add @cloudflare/workers-types better-sqlite3

pnpm を使っていますが、npm / bun でも問題ありません。Antigravity 上でこのプロジェクトを開いたら、最初に AGENTS.md に「このプロジェクトでは Better Auth を使う。Auth.js への置き換え提案は禁止」と明示的に書いておきましょう。これだけでエージェントの提案が安定します。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
NextAuth/Auth.js v5の複雑さに疲れていた人が、Better Authへ実プロジェクトを移行する判断基準と手順を今日から実行できる
Antigravity のエージェントにスキーマ生成からOAuth・RBAC・Passkey実装まで一気通貫で任せる、現場で使える指示パターンを習得できる
本番でハマりやすいCookie・CSRF・セッション失効・マルチテナント分離の落とし穴を、コード付きの正解形で回避できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-06-14
エッジキャッシュが Next.js の空ページを固定化していた原因と、cache-worker のガード設計
ユーザーから「時々読み込みエラーになる」と報告されるのに手元では再現しない。SSR の例外が HTTP 200 で配信され、それをエッジキャッシュが固定化していた原因を Antigravity のエージェントで切り分け、cache-worker にキャッシュ拒否ガードを実装した記録です。
アプリ開発2026-05-03
Antigravity × TypeScript で作る冪等性キーと重複排除ストア本番設計ガイド
Stripe Webhook の二重課金や Temporal ワークフローの再実行で起きる重複処理を、冪等性キーと重複排除ストアで止める本番設計を、Antigravity を伴走者にして TypeScript で組み上げる実践ガイドです。
アプリ開発2026-05-02
Antigravity に Server Actions を書かせるときの落とし穴 — Zod・revalidate・セキュリティを後付けしない実装フロー
Antigravity の AI に Next.js の Server Actions を書かせると、バリデーション・revalidate・認可チェックがごっそり抜け落ちることがあります。それを後付けにせず、最初から安全な実装に着地させるための実践フローをまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →