Executando verificação de segurança...
7

Saindo do NextAuth? Minha Jornada (e Descoberta) com o Better Auth no Next.js (Building in Public)

Fala Devs! Felipe Barcelos aqui de novo.

Seguindo a vibe do "building in public" que comecei com o post sobre o Igniter.js, hoje quero compartilhar outra peça importante que entrou na stack dos meus projetos quando fiz a construção do meu SaaS Boilerplate, e que tem me feito questionar o status quo da autenticação no Next.js: o Better Auth.

Pra quem viu meu último vídeo (Igniter.js: Criei um Framework Open Source), sabe que um dos meus objetivos é simplificar a vida do dev full stack, especialmente na criação de Micro-SaaS. E uma das partes que sempre gera um certo atrito, ou pelo menos um bom tempo de configuração, é a autenticação.

A Dor Antiga: NextAuth e a Busca por Mais

Não me entendam mal, o NextAuth (agora Auth.js) é uma ferramenta poderosa e ajudou (e ainda ajuda) muita gente. Usei por muito tempo! Mas confesso que, em alguns pontos, eu sentia falta de algo mais... integrado, talvez? Especialmente em relação à type safety ponta-a-ponta (backend <-> frontend) e à flexibilidade para estender funcionalidades sem gambiarras.

Quem já precisou personalizar muito o schema do usuário ou adicionar fluxos como 2FA, gerenciamento de times/organizações ou até integrações diretas com pagamentos (oi, Stripe!) no NextAuth sabe que, embora possível, nem sempre é trivial e a DX pode sofrer um pouco. Além disso, a falta de tipagem forte em alguns callbacks ou na sessão do lado do cliente às vezes me deixava com aquela pulga atrás da orelha.

A Descoberta: Better Auth (https://better-auth.dev/)

Foi nessa busca por uma experiência melhor que esbarrei no Better Auth. A proposta me chamou a atenção de cara: foco total em Type Safety (usando Zod e inferência de tipos) e um sistema de Plugins que parecia resolver muitas das minhas dores.

O que mais curti de primeira:

  1. Type Safety Real: Ele realmente se esforça pra garantir que os tipos do seu banco (com Prisma, por exemplo), os dados da sessão e o que você usa no frontend estejam sincronizados. Menos anys, menos as forçados, mais confiança no código.

  2. Plugins que Facilitam a Vida: Essa pra mim é a virada de chave. Precisa de:

    • 2FA (TOTP)? Plugin de 2FA muito completo.
    • Admin para gerenciar usuários? Banir, trocar permissão, listar usuários... pronto.
    • Sistema de Times/Organizações? Lida com convites, membros, etc.
    • Stripe para assinaturas? Cara, isso aqui é animal! Ele configura o banco de dados, te dá o endpoint de webhook pronto e métodos pra gerenciar os planos do cliente. Simplifica absurdamente a integração com pagamentos.
  3. DX Focada: A CLI (@better-auth/cli) ajuda no setup inicial (better-auth init), pergunta o que você quer, gera o config e até atualiza seu schema.prisma com as tabelas dos plugins. Achei isso bem mais direto do que copiar e colar schemas da documentação.

Como Tenho Usado (Exemplo Prático)

No vídeo novo que soltei (aqui o link pra quem quiser ver a demo completa), mostro o processo de setup e um fluxo básico com Magic Link:

Como eu usei no meu SaaS Boilerplate?

A ideia é que o SaaS Boilerplate seja uma base opinada para desenvolvedores que querem lançar os seus produtos de SaaS, são mais de 15 projetos que usei para mim e vários da comunidade.

Integrar o Better Auth (junto com o Igniter.js) nessa linha: oferecer uma solução de autenticação moderna, type-safe e extensível (com os plugins) pra quem adquire o boilerplate poder focar 100% na regra de negócio do seu SaaS, sem perder semanas configurando infra básica.

Você pode ver o resultado aqui:
https://saas-boilerplate.vibedev.com.br

Convite à Conversa (e ao Código!)

Estou explorando o Better Auth desde a sua primeira release publica, mas a experiência até agora tem sido muito positiva. O projeto é open source (aqui o GitHub deles, caso queiram fuçar ou contribuir) e a comunidade parece estar crescendo.

Mas quero saber de vocês:

Alguém já testou o Better Auth? Qual foi a impressão?

Quais as maiores dores que vocês têm hoje com autenticação no ecossistema JS/TS/Next.js?

O que acharam dessa ideia dos plugins para funcionalidades como Stripe e 2FA? Acham que simplifica?

Mandem aí nos comentários! Bora trocar essa ideia. E quem quiser ver a demo completa, o link do vídeo tá lá em cima.

Abraço e bom código pra gente! 🚀

Carregando publicação patrocinada...
1

Oi @felipebarcelospro, você realmente acredita que essas soluções que se propõem a fazer mil coisas são realmente necessárias ou isso é uma necessidade sua? Não me entenda mal, não estou criticando o seu post.

Porém, percebo muitas pessoas procurando por soluções mirabolante para seus projetos por falta de conhecimento sobre as ferramentas existentes ou até mesmo não saberem desenvolverem suas próprias soluções.

Talvez por eu ser backend eu tenha dificuldade em usar (aceitar) essas soluções que se propõem a fazer tudo. Claro, não descarto essas soluções para ideação de um projeto, mas ficaria extremamente preocupado no crescimento do projeto e no efeito que isso teria em cima dessas soluções.