Cos'è
Better Auth è un framework open-source di autenticazione e autorizzazione scritto in TypeScript. Nasce con l'obiettivo di offrire agli sviluppatori una soluzione completa e autocontenuta per gestire identità, sessioni e permessi direttamente all'interno della propria applicazione e del proprio database, senza dipendere da servizi di terze parti. È distribuito con licenza MIT e progettato per essere indipendente dal framework frontend o dal runtime utilizzato.
Il progetto è stato fondato da Bereket Engida e pubblicato su GitHub nel 2024. Dopo aver rapidamente attratto l'attenzione della comunità TypeScript, è entrato a far parte del batch di primavera 2025 di Y Combinator e ha successivamente raccolto un round seed da 5 milioni di dollari. Nonostante la crescita, Better Auth rimane un progetto open-source con codice disponibile pubblicamente.
La filosofia di fondo è che l'autenticazione non debba essere delegata per forza a servizi gestiti, ma possa essere implementata in modo solido, type-safe ed estensibile all'interno dello stack tecnologico del team.
Il problema che risolve
Nell'ecosistema TypeScript la gestione dell'autenticazione è storicamente frammentata. Le librerie esistenti offrono spesso solo primitive di base — come la creazione di sessioni o il parsing di token OAuth — lasciando al team il compito di costruire a mano funzionalità come la registrazione via email, il recupero password, la gestione dei ruoli, l'autenticazione a due fattori o il supporto a più organizzazioni. Al contrario, i servizi gestiti come Clerk, Auth0 o Firebase Auth centralizzano i dati degli utenti su infrastrutture di terze parti, introducono costi ricorrenti e riducono il controllo su flussi, dati e conformità.
Better Auth si colloca nel mezzo: fornisce un framework pronto all'uso con funzionalità avanzate integrate, ma mantiene l'intero sistema di autenticazione sotto il controllo dello sviluppatore. Questo approccio risponde a esigenze di sovranità dei dati, personalizzazione dei flussi e riduzione delle dipendenze esterne, specialmente per startup, SaaS e applicazioni enterprise.
Come funziona
Better Auth si installa come pacchetto npm nel proprio progetto. Il cuore del sistema è una funzione di configurazione, solitamente esposta da un file auth.ts, in cui si definiscono i provider di autenticazione, i plugin attivi, l'adattatore del database e le opzioni di sicurezza. Il framework genera automaticamente endpoint API, gestisce le migrazioni del database e fornisce un client TypeScript per il frontend.
Il flusso tipico prevede:
- Installazione:
npm install better-autho equivalenti con pnpm/yarn/bun. - Configurazione: si dichiara l'istanza
betterAuth({ ... })con i provider desiderati, ad esempio email/password, Google, GitHub, e i plugin come two-factor, passkey o organization. - Database: tramite un adapter, Better Auth crea e gestisce le tabelle necessarie per utenti, account, sessioni e verifiche. Supporta ORM e query builder come Drizzle, Prisma e Kysely, oltre a MongoDB.
- Client: sul frontend si inizializza il client con l'URL dell'endpoint auth, ottenendo funzioni type-safe per login, logout, registrazione e lettura della sessione.
- Protezione rotte: sul server si utilizzano hook o middleware per verificare la sessione e proteggere risorse e API.
Il framework è compatibile con Next.js, Nuxt, Astro, Svelte, Vue, React, SolidStart, Hono e altri ambienti, inclusi runtime edge come Cloudflare Workers e Vercel Edge Functions.
Caratteristiche principali
Better Auth include un insieme ampio di funzionalità disponibili out-of-the-box o tramite plugin ufficiali:
- Email e password: registrazione, login, hashing sicuro delle password, recupero password e verifica email.
- Social login: supporto per decine di provider OAuth, tra cui Google, GitHub, Discord, Apple e altri.
- Magic links: autenticazione passwordless tramite link inviato via email.
- Passkey: supporto a WebAuthn per l'accesso senza password basato su biometrici o chiavi di sicurezza.
- Two-factor authentication (2FA): autenticazione a due fattori tramite TOTP, utilizzabile come plugin.
- Organizzazioni e multi-tenancy: gestione di team, membri, ruoli e permessi all'interno di organizzazioni.
- Rate limiting: limitatore di richieste integrato, configurabile per proteggere gli endpoint di autenticazione.
- Gestione automatica del database: creazione e aggiornamento delle tabelle necessarie, con supporto alle migrazioni.
- Sessioni: gestione di cookie e token di sessione, con supporto alla multi-sessione.
- Plugin ecosystem: architettura a plugin per estendere il framework con funzionalità come SSO, SCIM, Stripe, OAuth provider personalizzati e altro.
- Type safety: API server e client completamente tipate in TypeScript.
- CLI: strumento da riga di comando per inizializzare il progetto, generare lo schema e gestire la configurazione.
- AI tooling: esposizione di un file
llms.txt, skill per assistenti di coding e un server MCP per l'integrazione con modelli che supportano il Model Context Protocol.
Casi d'uso concreti
Better Auth si adatta a diversi scenari, dalla semplice applicazione web al SaaS complesso:
- SaaS B2B: gestione di team, inviti, ruoli e organizzazioni con controllo degli accessi.
- Applicazioni consumer: login rapido con email/password, OAuth o magic links, con opzione passkey per esperienze moderne.
- Startup in crescita: soluzione scalabile senza costi di vendor all'aumentare degli utenti.
- Applicazioni enterprise: necessità di tenere i dati di autenticazione on-premise o all'interno del proprio cloud, con supporto a funzionalità avanzate come 2FA e SSO.
- Progetti con requisiti di privacy: controllo totale su dove risiedono i dati degli utenti, utile per conformità a GDPR e altre normative.
- Applicazioni su edge: compatibilità con runtime serverless e edge, dove servizi tradizionali potrebbero avere latenza o limiti di compatibilità.
Punti di forza e limiti
Punti di forza
- Ampia copertura funzionale senza dipendenze da servizi esterni.
- Framework-agnostic e runtime-agnostic.
- TypeScript-first, con forte type safety end-to-end.
- Plugin system che consente di attivare solo le funzionalità necessarie.
- Comunità attiva e sviluppo rapido.
- Codice open-source sotto licenza MIT, quindi modificabile e auditabile.
- Documentazione ricca e strumenti per l'integrazione con assistenti AI.
Limiti
- La responsabilità operativa rimane interamente del team: database, backup, sicurezza, aggiornamenti e monitoraggio.
- Non offre un'interfaccia utente predefinita: bisogna costruire i propri componenti di login, dashboard e gestione utenti.
- Rispetto a servizi gestiti, richiede più competenze interne su autenticazione e sicurezza.
- Alcune funzionalità avanzate, come SAML SSO, sono disponibili in plugin specifici che possono richiedere configurazioni complesse.
- In alcuni confronti il bundle del pacchetto risulta più pesante rispetto a librerie più leggere, in quanto include molta logica integrata.
Alternative e contesto
Better Auth opera in un mercato affollato di soluzioni per l'autenticazione. Le principali alternative si dividono in due categorie: librerie self-hosted e servizi gestiti.
Tra le librerie self-hosted, Auth.js (precedentemente NextAuth.js) è la più consolidata, specialmente nell'ecosistema Next.js, con ampia copertura di provider OAuth e una comunità molto grande. Tuttavia richiede più lavoro manuale per funzionalità come organizzazioni, 2FA e passkey. Lucia è una libreria di primitive per sessioni, deprecata come pacchetto autonomo e ora raccomandata principalmente come riferimento architetturale; molti sviluppatori che la usavano sono migrati verso soluzioni più complete come Better Auth. Stack Auth offre un approccio più vicino ai servizi gestiti, con componenti UI predefiniti e dashboard, pur restando open-source.
Tra i servizi gestiti, Clerk è la scelta più popolare per chi cerca componenti UI pronte, gestione degli utenti e scalabilità senza occuparsi dell'infrastruttura, a fronte di un costo che cresce con gli utenti. Auth0 e WorkOS sono orientati a contesti enterprise con requisiti di SAML, SSO e supporto commerciale. Supabase Auth è la scelta naturale per chi utilizza già Supabase come backend.
Better Auth si distingue per chi vuole mantenere il controllo dei dati e avere un set di funzionalità moderne integrate, senza passare a un servizio gestito.
In sintesi
Better Auth è un framework open-source di autenticazione e autorizzazione per TypeScript che punta a rendere l'autenticazione self-hosted pratica, completa e moderna. Con supporto per email/password, OAuth, passkey, 2FA, organizzazioni e molto altro, si rivolge a team che vogliono sovranità sui dati degli utenti e flessibilità sui flussi di accesso. Richiede una maggiore responsabilità operativa rispetto ai servizi gestiti, ma offre in cambio controllo, trasparenza e una developer experience fortemente orientata a TypeScript.
Risorse
- Sito ufficiale e documentazione: https://www.better-auth.com
- Repository GitHub: https://github.com/better-auth/better-auth
- Installazione: https://www.better-auth.com/docs/installation
- Blog ufficiale: https://www.better-auth.com/blog
