Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
mrgoonie avatar

Better Auth

  • 352 installs
  • 2.2k repo stars
  • Updated April 3, 2026
  • mrgoonie/claudekit-skills

better-auth is a Claude agent skill that implements Better Auth sessions, OAuth providers, middleware, and database adapters for developers who need production-ready login in Next.js or other TypeScript full-stack apps.

About

better-auth is a MIT-licensed agent skill (version 2.0.0) in mrgoonie/claudekit-skills for the Better Auth TypeScript authentication framework. Better Auth ships email/password, social OAuth, session management, and RBAC out of the box, with plugins for 2FA, passkeys, magic links, usernames, organizations, and rate limiting. The skill documents a feature-selection matrix, client-server architecture, and framework integrations spanning Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, and Express. It references dedicated guides for email-password flows, OAuth providers, and advanced features, and points to the Better Auth CLI (`npx auth@latest generate`) for Drizzle, Prisma, or other ORM schema output. Developers reach for better-auth when adding verified login, OAuth, MFA, or multi-tenant org auth without re-reading the entire Better Auth docs during implementation.

  • Session middleware
  • OAuth providers
  • DB adapter setup
  • Cookie security
  • Route protection

Better Auth by the numbers

  • 352 all-time installs (skills.sh)
  • +5 installs in the week ending Jul 26, 2026 (Skillselion tracking)
  • Ranked #1,146 of 4,348 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/mrgoonie/claudekit-skills --skill better-auth

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs352
repo stars2.2k
Last updatedApril 3, 2026
Repositorymrgoonie/claudekit-skills

How do you add Better Auth to Next.js?

Implement Better Auth sessions, providers, middleware, and database adapters correctly in Next.js or full-stack apps needing production-ready login.

Who is it for?

Full-stack TypeScript developers implementing production login with Better Auth across Next.js, SvelteKit, Remix, or Express who want guided provider and adapter setup.

Skip if: Teams committed to Clerk, Auth0, or NextAuth who do not plan to adopt the Better Auth framework and plugin ecosystem.

When should I use this skill?

The user asks to add Better Auth, configure OAuth or 2FA, set up session middleware, or generate auth database schemas in a TypeScript app.

What you get

Working auth server config, client hooks, OAuth provider setup, session middleware, and generated database schema migrations.

  • auth server configuration
  • client auth hooks
  • database schema migrations

By the numbers

  • Skill version 2.0.0 with MIT license
  • Documents 7+ framework targets including Next.js, SvelteKit, Remix, and Express

Files

SKILL.mdMarkdownGitHub ↗

Better Auth Skill

Better Auth is comprehensive, framework-agnostic authentication/authorization framework for TypeScript with built-in email/password, social OAuth, and powerful plugin ecosystem for advanced features.

When to Use

  • Implementing auth in TypeScript/JavaScript applications
  • Adding email/password or social OAuth authentication
  • Setting up 2FA, passkeys, magic links, advanced auth features
  • Building multi-tenant apps with organization support
  • Managing sessions and user lifecycle
  • Working with any framework (Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, Express, etc.)

Quick Start

Installation

npm install better-auth
# or pnpm/yarn/bun add better-auth

Environment Setup

Create .env:

BETTER_AUTH_SECRET=<generated-secret-32-chars-min>
BETTER_AUTH_URL=http://localhost:3000

Basic Server Setup

Create auth.ts (root, lib/, utils/, or under src/app/server/):

import { betterAuth } from "better-auth";

export const auth = betterAuth({
  database: {
    // See references/database-integration.md
  },
  emailAndPassword: {
    enabled: true,
    autoSignIn: true
  },
  socialProviders: {
    github: {
      clientId: process.env.GITHUB_CLIENT_ID!,
      clientSecret: process.env.GITHUB_CLIENT_SECRET!,
    }
  }
});

Database Schema

npx @better-auth/cli generate  # Generate schema/migrations
npx @better-auth/cli migrate   # Apply migrations (Kysely only)

Mount API Handler

Next.js App Router:

// app/api/auth/[...all]/route.ts
import { auth } from "@/lib/auth";
import { toNextJsHandler } from "better-auth/next-js";

export const { POST, GET } = toNextJsHandler(auth);

Other frameworks: See references/email-password-auth.md#framework-setup

Client Setup

Create auth-client.ts:

import { createAuthClient } from "better-auth/client";

export const authClient = createAuthClient({
  baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL || "http://localhost:3000"
});

Basic Usage

// Sign up
await authClient.signUp.email({
  email: "user@example.com",
  password: "secure123",
  name: "John Doe"
});

// Sign in
await authClient.signIn.email({
  email: "user@example.com",
  password: "secure123"
});

// OAuth
await authClient.signIn.social({ provider: "github" });

// Session
const { data: session } = authClient.useSession(); // React/Vue/Svelte
const { data: session } = await authClient.getSession(); // Vanilla JS

Feature Selection Matrix

FeaturePlugin RequiredUse CaseReference
Email/PasswordNo (built-in)Basic authemail-password-auth.md
OAuth (GitHub, Google, etc.)No (built-in)Social loginoauth-providers.md
Email VerificationNo (built-in)Verify email addressesemail-password-auth.md
Password ResetNo (built-in)Forgot password flowemail-password-auth.md
Two-Factor Auth (2FA/TOTP)Yes (twoFactor)Enhanced securityadvanced-features.md
Passkeys/WebAuthnYes (passkey)Passwordless authadvanced-features.md
Magic LinkYes (magicLink)Email-based loginadvanced-features.md
Username AuthYes (username)Username loginemail-password-auth.md
Organizations/Multi-tenantYes (organization)Team/org featuresadvanced-features.md
Rate LimitingNo (built-in)Prevent abuseadvanced-features.md
Session ManagementNo (built-in)User sessionsadvanced-features.md

Auth Method Selection Guide

Choose Email/Password when:

  • Building standard web app with traditional auth
  • Need full control over user credentials
  • Targeting users who prefer email-based accounts

Choose OAuth when:

  • Want quick signup with minimal friction
  • Users already have social accounts
  • Need access to social profile data

Choose Passkeys when:

  • Want passwordless experience
  • Targeting modern browsers/devices
  • Security is top priority

Choose Magic Link when:

  • Want passwordless without WebAuthn complexity
  • Targeting email-first users
  • Need temporary access links

Combine Multiple Methods when:

  • Want flexibility for different user preferences
  • Building enterprise apps with various auth requirements
  • Need progressive enhancement (start simple, add more options)

Core Architecture

Better Auth uses client-server architecture: 1. Server (better-auth): Handles auth logic, database ops, API routes 2. Client (better-auth/client): Provides hooks/methods for frontend 3. Plugins: Extend both server/client functionality

Implementation Checklist

  • [ ] Install better-auth package
  • [ ] Set environment variables (SECRET, URL)
  • [ ] Create auth server instance with database config
  • [ ] Run schema migration (npx @better-auth/cli generate)
  • [ ] Mount API handler in framework
  • [ ] Create client instance
  • [ ] Implement sign-up/sign-in UI
  • [ ] Add session management to components
  • [ ] Set up protected routes/middleware
  • [ ] Add plugins as needed (regenerate schema after)
  • [ ] Test complete auth flow
  • [ ] Configure email sending (verification/reset)
  • [ ] Enable rate limiting for production
  • [ ] Set up error handling

Reference Documentation

Core Authentication

  • Email/Password Authentication - Email/password setup, verification, password reset, username auth
  • OAuth Providers - Social login setup, provider configuration, token management
  • Database Integration - Database adapters, schema setup, migrations

Advanced Features

  • Advanced Features - 2FA/MFA, passkeys, magic links, organizations, rate limiting, session management

Scripts

  • scripts/better_auth_init.py - Initialize Better Auth configuration with interactive setup

Resources

  • Docs: https://www.better-auth.com/docs
  • GitHub: https://github.com/better-auth/better-auth
  • Plugins: https://www.better-auth.com/docs/plugins
  • Examples: https://www.better-auth.com/docs/examples

Related skills

Forks & variants (2)

Better Auth has 2 known copies in the catalog totaling 26 installs. They canonicalize to this original listing.

How it compares

Pick better-auth when you want a self-hosted TypeScript auth framework with a plugin matrix and ORM schema CLI, not a hosted identity SaaS dashboard.

FAQ

Which frameworks does better-auth support?

better-auth documents integrations for Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, and Express. Better Auth is framework-agnostic TypeScript, so the same server and client patterns transfer across stacks with stack-specific wiring notes.

What auth features does better-auth cover?

better-auth covers email/password, social OAuth, session management, and RBAC as built-ins, plus plugins for 2FA, passkeys, magic links, usernames, organizations, and rate limiting. A feature matrix maps each use case to the right module.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.