UI components
A complete drop-in UI library for auth — sign-in, organizations, profile, API keys, webhooks — for React and React Native.
@vortex-api/convex-auth ships a full component library, not just hooks. Every surface is a working component — drop it in, theme it with classNames and copy overrides, and it talks to your Convex backend through the client.
Type names in these pages are shortened for readability — see packages/auth/dist/react.d.ts for exact types.
import { ConvexAuthProvider, ConvexAuthSignInPage } from "@vortex-api/convex-auth/react";
React
Sign-in & onboarding
Full sign-in/sign-up pages, forms, social buttons, trigger buttons, and client screens.
Organizations
Org switcher, creation, member lists, invitations, and the role manager surface.
Account & profile
User profile, image upload, email change, password reset, 2FA, and session management.
API keys
Issue, rotate, and revoke keys without building the UI yourself.
Webhooks
Endpoint and delivery management with filters, pagination, and settings.
Security audit
Audit log list and row components for the security event trail.
Providers & primitives
Runtime providers, auth-state boundaries, and the shared primitives everything is built from.
React Native
The Expo component set — auth screens, org switcher and members, session list, profile and 2FA forms — built on secure token storage and deep links.
Theming
Wrap your app with ConvexAuthAppearanceProvider to manage light/dark/system theming. useConvexAuthAppearance returns the current theme, resolved resolvedTheme, and setTheme. The provider sets data-convex-auth-theme on the document root and persists the user’s choice in localStorage.
<ConvexAuthAppearanceProvider defaultTheme="system" storageKey="convex-auth-theme">
{children}
</ConvexAuthAppearanceProvider>
Every component accepts classNames and copy props for per-component styling and text overrides — see Theming for the full token model.
Migrating from Clerk or WorkOS
| convex-auth component | Clerk equivalent | WorkOS equivalent |
|---|---|---|
ConvexAuthProvider |
ClerkProvider |
— (AuthKit is hosted) |
ConvexAuthSignInPage / ConvexAuthSignUpPage |
SignIn / SignUp |
AuthKit hosted flow |
ConvexAuthSignInButton / ConvexAuthSignUpButton / ConvexAuthSignOutButton |
SignInButton / SignUpButton / SignOutButton |
— |
AuthSignedInBoundary / AuthSignedOutBoundary |
SignedIn / SignedOut |
— |
ConvexUserButton |
UserButton |
UsersManagement widget (hosted) |
ConvexUserProfile |
UserProfile |
UserProfile widget |
ConvexOrganizationSwitcher |
OrganizationSwitcher |
— |
ConvexOrganizationList |
OrganizationList |
— |
ConvexCreateOrganization |
CreateOrganization |
— |
ConvexOrganizationProfile |
OrganizationProfile |
— |
ConvexOrganizationMembersSurface / ConvexOrganizationMemberList |
OrganizationProfile members view |
Admin Portal users table |
ConvexOrganizationInviteForm |
OrganizationProfile invite tab |
— |
No Clerk or WorkOS equivalents exist for ConvexApiKeyCreateForm / ConvexApiKeyList, the ConvexWebhook* delivery surfaces, ConvexSecurityAuditList, ConvexOrganizationRoleManagerSurface (custom-role RBAC editor), or the standalone ConvexEnableTwoFactorForm / ConvexVerifyTwoFactorForm / ConvexChangeEmailForm — those are convex-auth capabilities with no drop-in counterpart to migrate. Full cutover paths: from Clerk, from WorkOS.