NextAuth.js

Open-source authentication for Next.js with OAuth, OIDC, email, and passkey sign-in.

Library
npm
v4.24.15
28,366 stars
ISC

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
59 /100 Fair
Development Activity 16
Maintenance 44
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 88
Code Quality 82
Innovation 90
Learning Curve 70

NextAuth.js is the official Auth.js integration for Next.js, providing a complete authentication layer for App Router and Pages Router applications. A single NextAuth() call wires up route handlers, session management, and helpers for signing users in and out, while built-in support for OAuth 2.0, OIDC, email/passwordless, and WebAuthn passkeys covers the sign-in methods most apps need.

Built on standard Web APIs through the @auth/core runtime, it runs anywhere Next.js does — Node.js, serverless, and edge — and works with or without a database via pluggable adapters. It is secure by default, using encrypted JWTs, CSRF protection, and restrictive cookie policies out of the box.

What You Get

  • A single NextAuth() factory that returns route handlers and auth/signIn/signOut helpers
  • Built-in providers for dozens of OAuth/OIDC services plus email and credentials sign-in
  • React client with SessionProvider and useSession for accessing session state anywhere
  • Database adapters for Postgres, MySQL, MongoDB, Prisma, Drizzle, and many more
  • Passkey/WebAuthn support and encrypted, CSRF-protected sessions by default

Common Use Cases

  • Adding social login (GitHub, Google, etc.) to a Next.js application
  • Implementing passwordless email or passkey authentication
  • Protecting App Router pages and API routes with session-aware middleware
  • Persisting users and sessions to a database through an adapter

Under The Hood

Architecture — The public surface lives in packages/next-auth/src, where the NextAuth() factory in index.ts accepts a config (or a request-aware function) and returns { handlers, auth, signIn, signOut, unstable_update }. The handlers.GET/POST delegate to Auth(reqWithEnvURL(req), config) from @auth/core, which does the real OAuth/OIDC/session work; initAuth and setEnvDefaults in src/lib layer Next.js-specific request handling and environment inference on top. The React client in react.tsx ships a SessionProvider and useSession hook that fetch session state from the auth API base URL.

Tech Stack — Written almost entirely in TypeScript (~94% of the repo). The package depends on the workspace @auth/core runtime and declares peer dependencies on next, react, nodemailer, and @simplewebauthn packages (the latter optional for passkeys). The repo is a pnpm + Turborepo monorepo housing packages/core, the many database adapters, and per-framework integrations; the package builds with tsc and generates provider entry points via a shared script.

Code Quality — Tests exist and run on Vitest (actions.test.ts, env.test.ts, middleware-fail-closed.test.ts) alongside Playwright end-to-end suites, using a shared config from packages/utils. The codebase is strongly typed with dedicated types.ts modules, and security-sensitive defaults (encrypted JWE tokens, CSRF, fail-closed middleware) are explicitly covered.

API Design — The developer experience is a highlight: a single NextAuth() call yields everything an app needs, providers are imported by path (e.g. next-auth/providers/github), and environment variables like AUTH_GITHUB_ID are inferred automatically to minimize boilerplate. Documentation is extensive both inline (rich JSDoc module comments) and on the authjs.dev site.

Used by 47 apps in this directory

TypeScript
98%
AGPL 3.0

Karakeep

Bookmarks Archiving

29,926

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
TypeScript
98%
AGPL 3.0

Karakeep

Bookmarks Archiving

29,926

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
TypeScript
98%
AGPL 3.0

Karakeep

Bookmarks Archiving

29,926

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
Python
64%
Other

Keep

Automation · Devops · Monitoring

12,433

The open-source AIOps and alert management platform that unifies 130+ monitoring tools into a single pane of glass with AI-powered correlation, deduplication, and workflow automation.

View details
88
Repo Health
79
Technical
66
Dependency
Built with
Python 64%
TypeScript 36%
Updated 1 weeks ago
Python
64%
Other

Keep

Automation · Devops · Monitoring

12,433

The open-source AIOps and alert management platform that unifies 130+ monitoring tools into a single pane of glass with AI-powered correlation, deduplication, and workflow automation.

View details
88
Repo Health
79
Technical
66
Dependency
Built with
Python 64%
TypeScript 36%
Updated 1 weeks ago
TypeScript
99%
MIT

KeystoneJS

CMS · Developer Tools

9,980

The superpowered headless CMS for developers built with GraphQL and React

View details
92
Repo Health
81
Technical
64
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
TypeScript
96%
Other

Langfuse

AI Development · Monitoring

36,276

Open source AI engineering platform for LLM observability, prompt management, evaluation, and debugging — self-host in minutes or use Langfuse Cloud.

View details
92
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
96%
Other

Langfuse

AI Development · Monitoring

36,276

Open source AI engineering platform for LLM observability, prompt management, evaluation, and debugging — self-host in minutes or use Langfuse Cloud.

View details
92
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
93%
AGPL 3.0

Linkwarden

Bookmarks Archiving · Knowledge Management

20,195

Self-hosted collaborative bookmark manager that captures full-page archives, enables annotation, and keeps your knowledge accessible forever.

View details
90
Repo Health
72
Technical
66
Dependency
Built with
TypeScript 93%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers