Feature Comparison: dracory/auth vs Authentik

Comparison of github.com/dracory/auth with Authentik, the flexible self-hosted identity provider.

High-Level Differences

dracory/authAuthentik
TypeGo library embedded in your appFull identity provider (Python, self-hosted)
ScopePer-app authenticationIAM, federation, directory, flows
DeploymentNo extra infrastructureMulti-service deployment (DB, Redis, workers)
Admin UXMinimal (impersonation)Rich admin console, policies, flows

Feature Comparison

dracory/authAuthentik
Email/password✅✅
Otp (codes/links)✅⚠️ Via flows
Magic links✅⚠️
MFA / TOTP / WebAuthn❌✅ TOTP, WebAuthn, Duo
SSO / OIDC / SAML / LDAP❌✅ All
Federation (social, SAML IdP)❌✅
Multi-tenancy❌✅ Brands/tenants
Impersonation✅ Built-in✅ Admin impersonation
Ops burden✅ None — it's a library❌ Significant
Multiple login methods simultaneously✅ Composable via NewMultiMethodAuth + types.Method (otp, magiclink, password, authknight, custom methods){mm}
Remember-me (extended sessions)✅ Built-in opt-in session extension{rm}

Legend: ✅ built-in · ⚠️ partial/conditional · ❌ not available

Branding & Layout Options

Aspectdracory/authAuthentik
Full layout control✅ FuncLayout wraps any page body in your own site shell (own <head>, nav, footer)✅ Full flow/branding customization, custom CSS & background, templates via blueprints
Theming / CSS✅ ThemeCSS (any hosted stylesheet / Bootlegance) + CustomCSS inline overrides✅ Per-brand themes, custom CSS, dark mode
Brand name / logo✅ BrandName, BrandTagline, BrandLogoURL rendered above the login card✅ Per-brand: title, logo, favicon, background; custom domains
Email templates✅ Per-flow FuncEmailTemplate* callbacks — full control✅ Customizable templates

When to Choose Authentik

directory management — full IAM territory.

flows.

When to Choose dracory/auth

links, password, impersonation in-process.