Auth.js
MAINTENANCE MODE: Auth.js team joined Better Auth in Sept 2025. v5 never left beta. Use Better Auth for new projects.
Authentication services compared — with real pricing, GDPR compliance details, and known gotchas from the community. Each entry includes vendor stability assessment, risk flags, and copy-paste integration code for Next.js and Express.
Every service is assessed on: vendor stability, real pricing (including per-MAU costs at scale), GDPR/compliance readiness, known gotchas, and integration time. Updated March 2026: Auth.js marked as maintenance mode (team joined Better Auth).
Quick recommendation:
| I need… | Use this | Starting price | Watch out for |
|---|---|---|---|
| Auth in 10 minutes (React/Next.js) | Clerk | Free (50K MRU), then $25/mo + $0.02/MRU | US-only data; $1,025/mo at 100K MRU |
| Self-hosted, GDPR-ready | Better Auth | Free forever (open source) | Build your own UI (1-3 days); need a database |
| Biggest free tier | Firebase Auth | Free (50K MAU), then $0.0055/MAU | Google Cloud lock-in |
| Auth + database + storage in one | Supabase Auth | Free (50K MAU), Pro $25/mo | Coupled to Supabase platform |
| Enterprise compliance (HIPAA/FedRAMP) | Auth0 | Free (25K MAU), Essentials $35/mo | Confusing pricing; $240/mo for roles |
| Maintain existing NextAuth v4 project | Auth.js | Free forever (open source) | MAINTENANCE MODE — do not start new projects |
| Service | Free Tier | Catches | Permanent? |
|---|---|---|---|
| Better Auth | Unlimited (open source) | You host it — need a database | Yes |
| Firebase Auth | 50,000 MAU | Google Cloud lock-in | Yes |
| Supabase Auth | 50,000 MAU | Pauses after 1 week idle; bundled with platform | Yes |
| Clerk | 50,000 MRU | $0.02/MRU on Pro after 50K; US data only | Yes |
| Auth0 | 25,000 MAU | Paid features start at $35/month | Yes |
| Auth.js | Unlimited (open source) | MAINTENANCE MODE — use Better Auth instead | Yes |
Need a database for self-hosted auth? See our database comparison — Neon’s free tier (0.5 GB) pairs well with Better Auth.
npm install @clerk/nextjs
// app/layout.tsx — wrap your app
import { ClerkProvider } from '@clerk/nextjs';
export default function Layout({ children }) { return <ClerkProvider><html><body>{children}</body></html></ClerkProvider>; }
// app/page.tsx — add login button
import { SignInButton, UserButton, SignedIn, SignedOut } from '@clerk/nextjs';
export default function Home() { return <><SignedOut><SignInButton /></SignedOut><SignedIn><UserButton /></SignedIn></>; }
npm install better-auth
// lib/auth.ts
import { betterAuth } from 'better-auth';
export const auth = betterAuth({ database: { url: process.env.DATABASE_URL }, emailAndPassword: { enabled: true } });
// app/api/auth/[...all]/route.ts
import { auth } from '@/lib/auth';
import { toNextJsHandler } from 'better-auth/next-js';
export const { GET, POST } = toNextJsHandler(auth);
Full integration guides with Express, SvelteKit, and more on each service page.
For fastest setup, Clerk gets you auth in 10 minutes with pre-built UI components. For full ownership and zero per-user cost, Better Auth is the recommended self-hosted option (it’s the official successor to Auth.js/NextAuth). For Google Cloud projects, Firebase Auth offers 50K MAU free.
Auth.js is in maintenance mode. The core team joined Better Auth in September 2025. Auth.js v5 never left beta and will not receive new features. Use Better Auth for all new projects. Auth.js is only appropriate for maintaining existing NextAuth v4 codebases.
Better Auth is the strongest choice for GDPR because it’s self-hosted — deploy your database in an EU region and all auth data stays in the EU. Clerk stores ALL user data in the US with no EU residency option, relying on the Data Privacy Framework (whose predecessor Privacy Shield was invalidated by Schrems II). Supabase Auth and Firebase Auth offer some regional options on paid tiers.
Choose Clerk if you need auth working in 10 minutes with polished UI components and can accept $0.02/MRU after 50K included. Choose Better Auth if you want zero per-user cost, full data ownership, GDPR-ready deployment, and the actively maintained successor to NextAuth. The trade-off is speed-to-ship vs long-term ownership. See the full Clerk vs Better Auth comparison.
MAINTENANCE MODE: Auth.js team joined Better Auth in Sept 2025. v5 never left beta. Use Better Auth for new projects.
Enterprise-grade identity platform. Feature-rich but expensive — pricing has drifted upward since Okta acquisition in 2022.
Open-source TypeScript auth framework. The Auth.js team joined Better Auth in Sept 2025, making it the recommended path forward for Next.js authentication.
Drop-in auth with pre-built UI components. 50K MRU free tier, but stores data in US only — GDPR risk for EU apps.
Google's managed auth service. Generous free tier (50K MAU), broad provider support, but ties you into the Firebase/Google Cloud ecosystem.
Auth built into the Supabase platform. PostgreSQL-backed, Row Level Security integration, generous free tier (50K MAU free, 100K on Pro at $0.00325/MAU overage — far cheaper than Clerk's $0.02/MRU) — but tightly coupled to Supabase.
Enterprise-ready auth platform with AuthKit. 1M MAU free, built-in SSO/SCIM/RBAC — strongest enterprise auth play, but SSO connections are $125/month each.
Clerk vs Auth0 vs Auth.js vs Firebase Auth vs Supabase Auth →