Skip to content

Convex Better Auth UI vs Better Auth UI

Both projects give you Better Auth components as source you own. They differ in what they assume about your backend.

Better Auth UI is a general-purpose UI library for Better Auth, built for React (shadcn/ui and HeroUI) and SolidJS. It doesn’t assume a database or a backend, so you connect it to your own Better Auth server.

Convex Better Auth UI (this project) targets Better Auth on Convex with SvelteKit or Next.js. Besides the components, it ships the Convex functions, routes, route protection, server-side preloading and admin tools, wired together.

Quick recommendation

Use Convex Better Auth UI if your app runs on Convex and Better Auth with SvelteKit or Next.js.

Use Better Auth UI if your app uses Better Auth without Convex, or uses a framework this project doesn’t support.

Comparison

AreaConvex Better Auth UIBetter Auth UI
TargetBetter Auth on ConvexAny Better Auth backend
FrameworksSvelteKit 3 and Next.js 16React and SolidJS; its docs show Next.js and TanStack Start
Backend codeConvex queries, mutations and the Better Auth HTTP handler are part of the installYou write the backend integration
OrganizationsSwitcher, create, profile, members, email invitations, roles and an accept-invitation routeOrganization plugin with switcher, settings, members, invitations, teams and roles
Admin/admin dashboard: search, create, ban, impersonate and delete users, set passwords, manage organizations and members, and a banner while impersonatingA “stop impersonating” item in the user menu
Data and reactivityComponents read users, accounts, organizations, invitations and roles through Convex queries and update liveDepends on the data layer you connect
Server-side preloading+layout.server.ts (the base/ssr item)The root layout.tsx preloads the user, accounts, active organization, organization list, invitations and role.You add server rendering yourself
Routes/signin, /reset-password, /api/auth/[...all], /api/organization/accept-invitation/[invitationId], /device, /admin, /active-organization/[[...all]] and /organization/createIts organization plugin documents /organization/..., /settings/organizations and /auth/accept-invitation; you connect routes to your app
Route protectionhooks.server.tsproxy.ts sends signed-out visitors to /signinYou add it
Dialogs on mobileProfile and organization dialogs are URL-backed, close with the browser back button and handle the iOS back-swipeDepends on how you assemble the UI
Feature setupPassword, OTP, magic link, social providers, emails, API keys, device authorization, organizations and admin are flags in auth.constants.ts plus environment variablesYou add each Better Auth plugin to your server and client
Installationjsrepo copies the source into your repositoryThe shadcn CLI copies the source into your repository

Why the Convex-specific path matters

Better Auth on Convex has more moving parts than a typical client and server setup. Auth requests go through Convex HTTP actions, server rendering needs the session token, protected routes need framework-specific redirects, and user and organization screens have to stay in sync with Convex data.

Convex Better Auth UI starts you from code where those pieces already work together. You can change any of it.

That helps when you build with an AI coding agent too. Adapting a working auth and organization system to your product is a smaller task for an agent than assembling the Better Auth and Convex integration from scratch.

Ready to try it? Start with SvelteKit or Next.js.