This gives you email/password, Sign in with Apple and Google sign-in on top of @supabase/supabase-js, plus the screens to use them: src/app/(auth)/{sign-in,sign-up,reset,new-password} with src/screens/auth/*, a redirect hook in src/hooks/use-auth-redirect.ts that sends signed-out users to /(auth)/sign-in and signed-in users out of (auth) (onboarding still wins first), and, with --with-examples, an example at src/app/examples/auth.tsx. @/lib/auth keeps the same API whichever option you pick, so auth.useSession() and auth.signOut() read the same here as under Clerk or Better Auth - what you also get from Supabase is a Postgres database and row-level security behind the same account. The session is persisted through the storage adapter (@/lib/storage), so it follows whichever storage module you selected.
At a glance
- Runs in Expo Go
- Yes
- Files added
- 19
- npm packages
- 4
- Keys to paste
EXPO_PUBLIC_SUPABASE_URL,EXPO_PUBLIC_SUPABASE_ANON_KEY- Included in
- Pro
Set it up
bun run setup --auth supabaseSetup copies the module in, installs SDK-matched versions and removes the options you did not pick. Then bun run doctor lists every key still missing, with a link to where you get it. The step-by-step guide is in the Supabase Auth docs.
Other auth options
- Clerk - email+code verification, Apple (native), Google (SSO) · @clerk/expo · Expo Go OK for JS flows
- Better Auth - self-hosted on the API routes · email/password + Apple/Google · Expo Go OK
Get it
Supabase Auth ships in Pro: one payment, lifetime updates. See pricing or browse every module.