Better Auth
The most comprehensive, framework-agnostic authentication and authorization framework for TypeScript.
Repository Health
Technical Analysis
Better Auth is a framework-agnostic authentication and authorization framework for TypeScript that ships a complete feature set out of the box instead of leaving you to assemble one from scratch. It handles email/password, social and OAuth2 sign-in, sessions, and account management with type-safe server and client APIs.
A first-class plugin ecosystem extends the core with advanced capabilities such as two-factor authentication, passkeys, organizations and multi-tenancy, magic links, SSO, an OIDC provider, and more, so you can add sophisticated auth flows with minimal code while keeping full control over your database and application stack.
What You Get
- A type-safe
betterAuth()server instance with email/password, session, and OAuth2 social sign-in built in - A matching type-safe client (
createAuthClient) with framework bindings for React, Vue, Svelte, Solid, and vanilla JS - A rich plugin system covering 2FA, passkeys, organizations, magic links, SSO, OIDC provider, admin, and more
- Database adapters for Drizzle, Prisma, Kysely, MongoDB, and in-memory storage, plus a schema/migration generator
- Framework integrations for Next.js, SvelteKit, SolidStart, TanStack Start, Node, and Expo
Common Use Cases
- Adding email/password and social login to a Next.js, SvelteKit, or Solid application
- Standing up multi-tenant SaaS auth with organizations, roles, and invitations
- Enforcing strong security with two-factor authentication, passkeys, and rate limiting
- Running your own OIDC/OAuth provider or SSO for internal services
Under The Hood
Architecture - The published better-auth package is the aggregation layer of a pnpm/turbo monorepo: packages/better-auth/src/index.ts re-exports a @better-auth/core runtime and pulls in workspace adapters (Drizzle, Prisma, Kysely, Mongo, memory) and telemetry. The betterAuth() factory in src/auth/full.ts builds a context (src/context/init.ts) that wires the configured database adapter, session and cookie handling (src/cookies, src/db), the OAuth2 flow engine (src/oauth2), and an endpoint dispatcher (src/api) that converts plugin-declared routes into a single mountable request handler. Roughly thirty first-party plugins under src/plugins (2FA, passkey, organization, magic-link, OIDC provider, admin, SSO) hook into that context, and matching client plugins under src/client produce a type-inferred createAuthClient with bindings for React, Vue, Svelte, Solid, and vanilla JS.
Tech Stack - Written almost entirely in TypeScript (~99.98%) and built with tsdown/turbo. Core runtime dependencies are deliberately lean: zod v4 for schema validation, jose for JWT/JWKS, @noble/hashes and @noble/ciphers for cryptography, better-call for typed endpoints, @better-fetch/fetch for the client transport, nanostores for client session state, and kysely/defu utilities. Database drivers and host frameworks (Next.js, SvelteKit, Solid, TanStack Start, Prisma, Drizzle, pg, mysql2, mongodb, react, vue, svelte) are all peer dependencies, keeping the core framework-agnostic and unopinionated about the surrounding stack.
Code Quality - The codebase is thoroughly tested, with roughly 97 *.test.ts files colocated alongside source in the main package (plus dedicated test/ and e2e/ suites at the repo root running under Vitest). Code is organized by concern into small, single-responsibility modules, formatted and linted with Biome, spell-checked with cspell, dependency-pruned with knip, and gated by lefthook git hooks. Changesets drives versioning and the project ships an AGENTS.md contributor guide, indicating a mature, disciplined engineering process.
API Design - The developer experience is a core selling point: a single betterAuth({...}) call configures the server and the client type is inferred from it, so enabling a plugin or extra field automatically surfaces on the typed client with no manual duplication. Plugins are added declaratively to an array, framework integration is a one-line handler mount, and a schema/migration generator scaffolds the required tables. The main tradeoff is breadth over minimalism — the large surface of plugins, adapters, and configuration options means a moderate learning curve to discover the right pieces, but everyday flows require little boilerplate.
Used by 35 apps in this directory
BrowserOS
Browser · AI Assistants
The open-source agentic Chromium browser with native AI agents, MCP server, and visual workflow automation — your data never leaves your machine.
claude-mem
AI Agents · AI Development
Give your AI coding agents persistent memory — claude-mem captures everything that happens during sessions, compresses it with AI, and surfaces the right context in every future session automatically.
CourseLit
Ecommerce · Blogging
Open-source, self-hosted LMS for selling online courses, digital downloads, and building communities on your own branded website.
Dokploy
Devops · Hosting Control Panel · Security
Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration
Epicenter
Knowledge Management · Note Taking · Developer Tools
A local-first monorepo led by Whispering, an open-source speech-to-text app, built on an MIT toolkit that turns your data into plain Markdown and SQLite files you own instead of a database you rent.
Formbricks
Forms Surveys · Marketing · Analytics
Open-source experience management platform for in-app, website, email, and link surveys — privacy-first and fully self-hostable.
Helicone
Monitoring · AI Development · Analytics
An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.
Kan
Project Management
An open-source, self-hostable Kanban board built as a modern Trello alternative with team workspaces, board permissions, and Trello import.
Kaneo
Product Management · Productivity · Project Management
Lightweight self-hosted project management that gives you kanban boards, GitHub sync, and full team collaboration without the enterprise bloat.