Skip to content

Why Auth UI

Hosted auth providers made sign-in easy to add. They also made it hard to own: the flows, the UI and the user data sit on someone else’s platform, and every change goes through their API and their roadmap.

The problem

The pattern is familiar if you’ve used a hosted auth service. You paste a snippet, configure a dashboard, and it works. Then you want to change a flow, restyle a dialog or add organizations, and you find out which parts the vendor lets you touch.

Each workaround couples you more to the vendor. You rent your auth rather than own it.

The trade-off

Hosted providers solved a real problem: secure authentication is hard to build. The price is ownership.

Hosted providerAuth UI
You depend on the provider’s platform and uptimeAuth runs in your Convex deployment
User data is stored on the provider’s serversUser data lives only in your Convex database
The UI and API are what the provider exposesEvery component and Convex function is a file you can edit
Billing per user or per organizationNo per-user fee; you pay for your Convex usage

Code you own

Auth UI builds on three open projects: Better Auth for the authentication API, Convex for the database and functions, and Skeleton with Ark UI for the components.

The CLI copies the source into your project. There’s no SDK wrapping the UI and no remote dashboard to configure. If you can open the file, you can change it.

What that gives you

Control of the experience

Dialogs, forms and transitions are Svelte or React components in your repository. Restyle them, restructure them, or add a step to a flow.

Data that stays in your stack

Users, sessions, organizations and invitations are tables in your Convex deployment. Nothing is mirrored to a third party.

Costs that don’t grow per user

A thousand more sign-ups add Convex usage, not a seat fee.

Independence

An auth vendor’s pricing change, deprecation or outage doesn’t reach your sign-in, because no auth vendor runs it.

To see what ships and what it costs you in maintenance, read the Introduction. To compare it with Better Auth UI, read Comparison.