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

Better Auth

  • 21 installs
  • 95 repo stars
  • Updated July 7, 2026
  • binjuhor/shadcn-lar

This is a copy of better-auth by mrgoonie - installs and ranking accrue to the original listing.

Better Auth is a Claude skill that adds authentication and authorization to TypeScript apps using the framework-agnostic Better Auth library.

About

This skill implements authentication and authorization using Better Auth, a framework-agnostic TypeScript auth framework. A developer uses it to add email/password login, OAuth providers, 2FA, passkeys, sessions, and RBAC to web apps built with Next.js, Nuxt, SvelteKit, Remix, Hono, Express, and others. It provides install steps, server and client setup snippets, and a feature-selection matrix.

  • Integrates the Better Auth framework-agnostic TypeScript auth framework
  • Covers email/password, OAuth, 2FA/passkeys, sessions, and RBAC
  • Setup snippets for Next.js and other frameworks plus a feature matrix

Better Auth by the numbers

  • 21 all-time installs (skills.sh)
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
At a glance

better-auth capabilities & compatibility

Free; OAuth requires provider client IDs and secrets (for example GitHub).

Capabilities
api development · security audit
Works with
github
Use cases
api development · security audit
Pricing
Free
From the docs

What better-auth says it does

Better Auth is comprehensive, framework-agnostic authentication/authorization framework for TypeScript
SKILL.md
Use when adding authentication to applications, implementing OAuth flows, setting up 2FA/MFA, managing user sessions
SKILL.md
Working with any framework (Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, Express, etc.)
SKILL.md
npx skills add https://github.com/binjuhor/shadcn-lar --skill better-auth

Add your badge

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

Listed on Skillselion
Installs21
repo stars95
Last updatedJuly 7, 2026
Repositorybinjuhor/shadcn-lar

What it does

Add email/password, OAuth, 2FA, passkeys, and RBAC to a TypeScript web app using Better Auth.

Who is it for?

Adding email/password, OAuth, 2FA, and passkeys to a TypeScript or JavaScript web app.

Skip if: Non-TypeScript stacks or apps not using the Better Auth library.

When should I use this skill?

Adding authentication, implementing OAuth flows, setting up 2FA/MFA, or managing user sessions.

What you get

A configured Better Auth server and client with the chosen auth methods and session handling.

  • auth server config
  • auth client
  • database schema/migrations

By the numbers

  • 11-row feature selection matrix
  • 4 reference files

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

FAQ

Which frameworks does Better Auth work with?

It is framework-agnostic and works with Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, Express, and others.

Which auth features are built in versus plugins?

Email/password, OAuth, email verification, password reset, rate limiting, and sessions are built in; 2FA, passkeys, magic link, username, and organizations require plugins.

Securityappseccompliance

This week in AI coding

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

unsubscribe anytime.