---
title: One command to connect Supabase with Expo
authors: Gabe Debes
published: November 10, 2026
---

You can now [set up Supabase](https://supabase.com/blog/set-up-supabase-for-every-expo-environment-in-one-command) with one command:

```console
$ $ eas integrations:supabase:connect
```

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](https://expo.dev) with a link into Supabase.

In CI it runs without prompts, once you have authorized in a browser:

```console
$ $ eas integrations:supabase:connect --non-interactive --region us-east-1 --overwrite
```

[Using Supabase](https://docs.expo.dev/guides/using-supabase/) covers client setup, row level security, environments, local development, and troubleshooting.