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.
When to pick Supabase Auth
Pick Supabase if you also want a Postgres database and row-level security behind the same account - it's the cheapest path from zero to a real backend.
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
- Screens added
/(auth)/new-password,/(auth)/reset,/(auth)/sign-in,/(auth)/sign-up- Tests included
- 2
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.
Wiring it by hand instead? Read the guide: Supabase auth in Expo: email, Apple and Google.
Supabase Auth vs other auth options
| Option | Expo Go | npm packages | Keys to paste | Included in |
|---|---|---|---|---|
| Supabase Auth | Yes | 4 | 2 | Pro |
| Clerk | Yes | 6 | 1 | Pro |
| Better Auth | Yes | 4 | 1 | Pro |
Questions
Can I use Supabase Auth in Expo Go?
Yes. This module runs in Expo Go, so you can try it before you make a development build.
What do I need to set up Supabase Auth in an Expo app?
Run bun run setup --auth supabase, then paste 2 keys into .env: EXPO_PUBLIC_SUPABASE_URL, EXPO_PUBLIC_SUPABASE_ANON_KEY. bun run doctor lists any that are missing, with a link to where you get each one.
Which other modules does Supabase Auth need?
It needs a Storage option (expo-sqlite/kv-store, MMKV or AsyncStorage). Pick those in the same setup run.
Does the ReadyNative free tier include Supabase Auth?
No. Auth is a Pro category: the free tier and Starter ship it switched off. Pro is one payment with lifetime updates.
Can I build the app without Supabase Auth?
Yes. Pick none for auth (bun run setup --auth none) - auth.useSession() shim returns signed-out, signOut resolves.
Supabase Auth or Clerk for Expo?
Pick Supabase if you also want a Postgres database and row-level security behind the same account - it's the cheapest path from zero to a real backend. Pick Clerk if you'd rather buy user management outright: hosted accounts, a good dashboard, organizations, and a code-based sign-up flow that's already wired here.
Supabase Auth or Better Auth for Expo?
Pick Supabase if you also want a Postgres database and row-level security behind the same account - it's the cheapest path from zero to a real backend. Pick Better Auth if the user table has to be yours - it runs on your own API routes (backend/api-routes is required), with no third-party dashboard and no per-user pricing, in exchange for owning the database and the mail provider.
What does Supabase Auth mean for the App Store and Google Play privacy forms?
It collects: Email address, name (account); Auth tokens; IP address (auth logs). Shared with: Supabase (processor). Setup adds its data types to the iOS privacy manifest; the docs page lists the answers for Play's Data safety form.
Which Supabase Auth version does it install?
For Expo SDK 57: @supabase/supabase-js ^2.116.0, expo-apple-authentication ~57.0.2, expo-auth-session ~57.0.12, expo-crypto ~57.0.3. Setup installs Expo packages with expo install, so they match the SDK.
Get it
Supabase Auth ships in Pro: one payment, lifetime updates. See pricing or browse every module.