Better Auth vs. Clerk entscheidet sich an einer Frage: Wo liegen Ihre Nutzer und Sessions? Clerk hält sie in seinem gehosteten Dienst. Better Auth schreibt sie in Ihre eigene Datenbank, als normale Tabellen neben dem Rest der App.
Wir sind in jeder neuen App von NextAuth auf Better Auth gewechselt und haben Clerk nie gewählt. Ehrlich vorweg: Clerk haben wir nicht in Produktion betrieben. Das hier ist also kein Benchmark. Es erklärt, warum wir uns dagegen entschieden haben, mit den Konfigurationen, die bei uns wirklich laufen.
Was ist der Unterschied zwischen Better Auth und Clerk?
Better Auth ist eine Bibliothek. Sie beschreibt sich als „a framework-agnostic, universal authentication and authorization framework for TypeScript“ (Better-Auth-Dokumentation, Stand 24.10.2026). Sie steht unter MIT-Lizenz. Clerk ist ein gehosteter Dienst mit fertigen Anmeldekomponenten und einer Nutzerverwaltung.
Better Auth
Clerk
Was es ist
TypeScript-Bibliothek in Ihrem Repository
Gehosteter Auth-Dienst mit UI-Komponenten
Wo Nutzer und Sessions liegen
Tabellen in Ihrer Datenbank
Infrastruktur von Clerk
Preis
MIT, Sie zahlen eigene Datenbank und E-Mails
0 USD bis 50.000 MRU pro App, danach kostenpflichtig (Preise, Stand 24.10.2026)
Anmelde-UI
Bauen Sie selbst
Fertige Komponenten
Sicherheitsupdates
Sie aktualisieren das Paket und releasen
Liefert Clerk
Bestätigungs-E-Mails und Magic Links
Ihr E-Mail-Dienst
Verschickt Clerk
Wechsel
Nichts zu verlassen, das Schema gehört Ihnen
Nutzerexport mit gehashten Passwörtern, danach UI und Session-Prüfungen umbauen
Entschieden haben für uns die zweite und die dritte Zeile. Code, Daten und Infrastruktur gehören dem Kunden ab dem ersten Tag. Eine Nutzertabelle auf fremden Servern, bezahlt pro Nutzer, passt dazu nicht.
Warum sind wir von NextAuth auf Better Auth gewechselt?
Ältere Kunden-Apps laufen auf NextAuth v4 mit dem Prisma-Adapter. Sie laufen, und wir lassen sie in Ruhe. Eine Anmeldung, die funktioniert, schreiben wir nicht für einen Blogartikel neu.
Für neue Apps wurde die Entscheidung im September 2025 einfacher. Auth.js, früher NextAuth.js, ging an das Better-Auth-Team über. Die Ankündigung sagt es klar:
We strongly recommend new projects to start with Better Auth unless there are some very specific feature gaps.
Das ist der praktische Unterschied. Ein Datensatz, den ein Nutzer angelegt hat, ist ein Fremdschlüssel auf user.id in derselben Datenbank. Eine Auswertung „wer hat was getan“ ist ein SQL-Join, kein Aufruf einer externen API plus Sync-Job.
Wie wird die Anmeldung Teil Ihres eigenen Codes?
Unsere interne Cockpit-App zeigt, wie weit das geht. Registrieren darf sich nur eine kurze Liste von Personen, und nur über GitHub. Keine Einstellung bei einem Anbieter macht das. Es sind ein paar Zeilen in einem Datenbank-Hook:
Die Person meldet sich über GitHub an. Die App fragt nach Repository-Zugriff, weil sie Issues und Pull Requests liest.
02
Der Hook läuft vor dem Insert
databaseHooks.user.create.before bekommt den neuen Nutzer, bevor er geschrieben wird.
03
Nicht auf der Liste: kein Nutzer
Die Rückgabe false stoppt den Insert. Es entsteht weder Nutzerzeile noch Session.
04
Auf der Liste: eine Session-Zeile
Nutzer und Session landen in der eigenen D1-Datenbank der App, lesbar mit jedem SQL-Client.
Die Allowlist ist eine Umgebungsvariable. Sie zu ändern ist ein Deploy, der wie jede andere Änderung reviewt wird. Bei einem gehosteten Dienst läge dieselbe Regel in einem Dashboard oder einem Webhook außerhalb des Repositorys.
Welche Better-Auth-Plugins laufen bei uns in Produktion?
Jedes Plugin ist Code im Repository, die Liste ist also leicht zu prüfen:
Unser Starter-Template:tanstackStartCookies und das Polar-Billing-Plugin (Checkout und Kundenportal, ein Kunde entsteht bei der Registrierung). Polar kommt nur dazu, wenn das Token existiert.
Eine Web-App für einen Kunden: Better Auth innerhalb von Payload CMS mit admin, organization, twoFactor, emailOTP, magicLink, multiSession und dem Passkey-Plugin.
Ein Kunde mit Online-Marktplatz: ein eigener Auth-Dienst auf MongoDB mit magicLink und oidcProvider. Die anderen Apps des Marktplatzes melden sich darüber an, wie über jeden OpenID-Connect-Anbieter.
Drei Datenbanken, drei Setups, eine Bibliothek. Das schätzen wir am meisten: Dieselbe Bibliothek passt zu SQLite am Edge, zu Postgres hinter einem CMS und zu MongoDB in einem eigenen Dienst.
Wann ist Clerk die bessere Wahl?
Clerk ist sinnvoll, wenn die Anmeldung diese Woche fertig sein soll und niemand im Team Auth-Code verantworten soll. Fertige Komponenten sparen die Screens. Clerk verschickt die E-Mails und patcht den Dienst. Für einen Prototyp ist der kostenlose Plan großzügig: 50.000 MRU (monthly retained users) pro App, Pro für 25 USD im Monat und 0,02 USD pro Nutzer von 50.001 bis 100.000 (Clerk-Preise, Stand 24.10.2026).
Der Lock-in ist kleiner als gedacht. Admins exportieren Nutzer samt gehashten Passwörtern als CSV (Clerk-Dokumentation, Stand 24.10.2026). Die Daten sind keine Geisel. Arbeit macht alles, was daran hängt: Anmelde-UI, Session-Prüfungen auf dem Server und Nutzerdaten, die Sie in eigene Tabellen kopiert haben.
Noch ein Fakt zum Abwägen. Better Auth hat sich am 7. Juli 2026 Vercel angeschlossen. Der Beitrag sagt: „Vercel shares our commitment to keeping auth open source, framework and platform agnostic.“ (Better-Auth-Blog). Die MIT-Lizenz bleibt, was sie ist. Wir notieren es, wie jeden Eigentümerwechsel einer Abhängigkeit, auf die wir bauen.
Was übernehmen Sie, wenn Ihnen die Anmeldung gehört?
Eigene Anmeldung ist nicht ohne Arbeit. Sie verschiebt die Arbeit nur zu Ihrem Team. Bevor Sie Better Auth wählen, gehen Sie diese Liste durch:
Der letzte Punkt ist die günstigste Versicherung. Unser Starter führt genau dafür Playwright-Tests aus: Das Login-Formular wird gerendert, die Registrierung funktioniert, und das Dashboard leitet ohne Session zum Login um.
Möchten Sie eine Anmeldung, die in Ihrer Datenbank bleibt?
Web-Apps, in denen Nutzer, Sessions und Berechtigungen in der eigenen Datenbank des Kunden liegen, bauen wir im Rahmen von Webanwendungen nach Maß. Code, Daten und Infrastruktur gehören dem Kunden ab dem ersten Tag. KI schreibt heute unseren gesamten Code, und ein Senior steht für das Ergebnis gerade. Seit 2023 haben wir 15+ Produktionsprojekte geliefert.
Wir melden uns innerhalb von zwei Arbeitstagen und wählen gemeinsam, was wir zuerst lösen.
Was ist der Unterschied zwischen Better Auth und Clerk?
Better Auth ist eine Open-Source-Bibliothek für TypeScript, die Nutzer und Sessions in Ihrer eigenen Datenbank speichert. Clerk ist ein gehosteter Dienst, der sie für Sie speichert und fertige Anmelde-UI liefert. Sie wählen zwischen Kontrolle ohne Preis pro Nutzer und weniger eigenem Code.
Was kostet Better Auth?
Better Auth steht unter MIT-Lizenz, für die Bibliothek zahlen Sie nichts. Sie zahlen, worauf sie läuft: Datenbank, Hosting und den E-Mail-Dienst, der Bestätigungslinks und Magic Links verschickt.
Was kostet Clerk?
Stand 24.10.2026 kostet der Hobby-Plan 0 USD mit einem Limit von 50.000 MRU (monthly retained users) pro App, Pro kostet 25 USD im Monat (20 USD bei jährlicher Zahlung), und Nutzer 50.001 bis 100.000 kosten je 0,02 USD im Monat. Aktuelle Zahlen stehen auf clerk.com/pricing.
Lohnt sich der Wechsel von NextAuth zu Better Auth?
Für neue Projekte ja: Auth.js wird heute vom Better-Auth-Team gepflegt, und das empfiehlt Better Auth für neue Arbeit. Eine funktionierende NextAuth-App schreiben wir nicht nur deshalb um. Wir wechseln, wenn die App eine Funktion braucht, die NextAuth nicht hat.
Kann man Clerk später verlassen?
Ja. Admins exportieren Nutzer samt gehashten Passwörtern als CSV aus dem Dashboard. Arbeit macht der Rest: Anmelde-UI, Session-Prüfungen auf dem Server und Nutzerdaten, die Sie in eigene Tabellen kopiert haben.
Fragen Sie eine KI zu diesem Artikel
Die KI nutzt dabei auch unsere anderen Artikel und Erfahrung aus echten Projekten.
Claude Code Pricing laut der öffentlichen Preisliste von Anthropic (Oktober 2026): Pro, Max, Team-Seats, Enterprise und API-Tokens. Was zu Entwicklern passt, worauf ein dauerhaft laufender Agent und ein CI-Reviewer laufen, und die Leitplanken, die einen Hintergrund-Agenten davon abhalten, das Budget zu verbrennen.
Wir haben Vercel nicht ersetzt, wir haben die Arbeit aufgeteilt. Next.js-Websites bleiben auf Vercel, neue Apps laufen auf Cloudflare Workers und D1, in TypeScript mit Alchemy beschrieben. Preise mit Quellen, unsere Konfiguration und der blockierte Deploy eines KI-Agenten.
Drizzle vs Prisma aus zwei ORMs, die wir in Produktion betreiben: Prisma auf Postgres in älteren Kunden-Apps, Drizzle auf Cloudflare D1 in allem Neuen. Echte Konfiguration, der Migrationsablauf, was Prisma 7 geändert hat und wann wir nicht wechseln würden.
Zeit, mit dem Planen aufzuhören und das Problem zu lösen.