effect-auth

Overview

Understand what effect-auth provides and how its layers fit together.

effect-auth is a composable, Effect-native authentication toolkit for TypeScript. It provides typed authentication flows, HTTP operations, and runtime services without requiring every application to adopt the same routes or architecture.

Alpha

APIs, schemas, and migrations can change between releases. Pin effect-auth and Effect versions, review release notes, and test upgrades.

What you can assemble

AreaBuilding blocks
Sign-inPassword, email OTP, magic links, passkeys, custom primary methods, and OAuth composition
Account securityTOTP, recovery codes, trusted devices, MFA, step-up, verification, login approval, and recovery
Sessions and accessCookie sessions, guards, API keys, permissions, and tokens
Runtime capabilitiesStorage contracts, cryptography, mail, rate limiting, policy, and typed errors

The Feature Status page is the authoritative support boundary; feature guides explain setup and ownership.

Durable state is part of the design

Authentication depends on atomic, durable users, identities, credentials, sessions, challenges, and revocations. Pick the database and migration lifecycle before designing the UI.

Storage pathMaintained supportApplication owns
SQLite, including Cloudflare D1Focused direct Drizzle stores for all 42 tracked portsComposition, migrations, backups, and recovery
PostgreSQLFocused direct Drizzle stores for all 42 tracked portsDatabase Layer, deployment, migrations, and recovery
Other databasesPublic ORM-free store contractsCorrect atomicity, concurrency, schema, and full ops

Read Storage before choosing a deployment shape; matching table columns alone is not a correct custom adapter.

Where should I start?

GoalNext page
Run a tested Cloudflare app end to endQuick Start
Install packages or choose an adapterInstallation
Understand the reusable HTTP boundaryHTTP Operations
Select sign-in, MFA, or recovery featuresAuthentication
Design roles, scopes, and resource authorizationPermissions and Roles
Design storage or a custom adapterStorage
Add one capability to an existing integrationRecipes
Evaluate production readinessProduction Checklist

On this page