Feature Comparison: dracory/auth vs Firebase Authentication

Comparison of github.com/dracory/auth with Firebase Authentication (Google Identity Platform).

High-Level Differences

Aspectdracory/authFirebase Auth
TypeGo library embedded in your appManaged Google service + client SDKs
LanguageGo onlyClient SDKs (JS, iOS, Android, Flutter); Admin SDKs server-side
DeploymentNo extra infrastructureGoogle cloud only
Data ownershipYour database, your schemaUser data in Firebase/Google
UIBuilt-in server-rendered HTMLFirebaseUI widget or DIY
PricingFree (license)Generous free tier; SMS and Identity Platform features billed

Feature Matrix

Featuredracory/authFirebase Auth
Email/password✅✅
Otp (email link)✅ Codes + magic links✅ Magic links, SMS OTP
Phone/SMS auth❌✅
Social / OAuth providers❌ (only via AuthKnight)✅ Google, Apple, GitHub, X, etc.
Anonymous auth❌✅
Custom token minting❌✅
MFA❌✅ SMS/TOTP (Identity Platform)
SAML / OIDC enterprise SSO❌✅ (Identity Platform)
Multi-tenancy❌✅ (Identity Platform tenants)
Session management✅ Your store + cookies✅ ID tokens + session cookies
Impersonation✅ Built-in❌ (custom claims workarounds)
Rate limiting / lockout✅ Built-in✅ Managed
Ready-to-use UI✅ Server-rendered⚠️ FirebaseUI (dated) or DIY
Middleware✅ Web/API/optional✅ Admin SDK token verification
Works without GCP✅❌
Vendor lock-in✅ None❌ High
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/authFirebase Auth
Full layout control✅ FuncLayout wraps any page body in your own site shell (own <head>, nav, footer)⚠️ FirebaseUI drop-in (limited) or fully custom UI with the client SDK
Theming / CSS✅ ThemeCSS (any hosted stylesheet / Bootlegance) + CustomCSS inline overrides⚠️ FirebaseUI styling is limited; custom UI = full control
Brand name / logo✅ BrandName, BrandTagline, BrandLogoURL rendered above the login card⚠️ Project name/logo in console emails & hosted UI
Email templates✅ Per-flow FuncEmailTemplate* callbacks — full control✅ Customizable subject/body, custom SMTP

When to Choose dracory/auth

When to Choose Firebase Auth