Create a Supabase project, install the SDK, and get your keys into every Expo environment without leaving the terminal.

You can now set up Supabase with one command:
It opens your browser once to authorize Supabase, asks which organization and region to use, and creates the project. Then it installs @supabase/supabase-js and expo-sqlite, adds the expo-sqlite config plugin, and writes EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_PUBLISHABLE_KEY to .env.local and to your Expo environment variables for Production, Preview, and Development. Local dev, builds, and updates all read the same values.
Already have a project? --link <project-ref-or-url> points at it instead. Rerunning is safe: it reuses what it made and asks before replacing anything.
The project is yours
A Postgres database, auth, storage, and realtime in your own Supabase organization. You own the project, the data, and the bill. We keep an encrypted token so the CLI can act on your behalf, and you can take it back any time, from Supabase or with eas integrations:supabase:disconnect.
We never see your database password. Supabase requires one when a project is created, so we generate a random one, hand it over, and keep no copy. Reset it in the Supabase dashboard if you later want psql or migrations against the database.
Both values we write are public and belong in your app. Row level security is what protects the data, so turn it on and add policies for the tables your app reads and writes.
The client snippet in the guide stores sessions in expo-sqlite, so people stay signed in between launches. No AsyncStorage, no adapter to write.
One backend per environment
All three environments start on the same project. When Preview needs its own data, run eas integrations:supabase:connect --environment preview and it gets a separate project, so a preview build can never write to production.
All of this works in Expo Go. You need a development build once you pass options to the expo-sqlite plugin or add other native libraries.
Work against a local stack
Your app reads .env.local, so pointing it at a local database is a two-line change. npx supabase init and npx supabase start bring up Postgres, auth, and Studio on your own machine, with no Supabase account or login involved. Paste in the URL and key that supabase status prints, then run your table SQL in Studio at 127.0.0.1:54323, since the local database starts empty. Nothing you do locally counts against the two active projects on the Free plan.
Try it
Update to eas-cli 21.8.0 or newer and run eas integrations:supabase:connect in a project linked to Expo Services. Copy the client snippet from the guide, open the SQL Editor with eas integrations:supabase:dashboard, create a table, and read it from your first screen. Connected projects show up in your project settings on expo.dev with a link into Supabase.
In CI it runs without prompts, once you have authorized in a browser:
Using Supabase covers client setup, row level security, environments, local development, and troubleshooting.