apps/docs/content/guides/local-development.mdx
Develop locally while running the Supabase stack on your machine.
<Admonition type="note">As a prerequisite, you must install a container runtime compatible with Docker APIs.
Install the Supabase CLI:
<Tabs scrollable size="small" type="underlined" defaultActiveId="npm" queryGroup="package-manager"><TabPanel id="npm" label="npm">
npm install supabase --save-dev
</TabPanel><TabPanel id="yarn" label="yarn">
NODE_OPTIONS=--no-experimental-fetch yarn add supabase --dev
</TabPanel><TabPanel id="pnpm" label="pnpm">
pnpm add supabase --save-dev --allow-build=supabase
The --allow-build=supabase flag is required on pnpm version 10 or higher. If you're using an older version of pnpm, omit this flag.
</TabPanel><TabPanel id="brew" label="brew">
brew install supabase/tap/supabase
</TabPanel></Tabs>
In your repo, initialize the Supabase project:
<Tabs scrollable size="small" type="underlined" defaultActiveId="npm" queryGroup="package-manager"><TabPanel id="npm" label="npm">
npx supabase init
</TabPanel><TabPanel id="yarn" label="yarn">
yarn supabase init
</TabPanel><TabPanel id="pnpm" label="pnpm">
pnpx supabase init
</TabPanel><TabPanel id="brew" label="brew">
supabase init
Start the Supabase stack:
<Tabs scrollable size="small" type="underlined" defaultActiveId="npm" queryGroup="package-manager"><TabPanel id="npm" label="npm">
npx supabase start
</TabPanel><TabPanel id="yarn" label="yarn">
yarn supabase start
</TabPanel><TabPanel id="pnpm" label="pnpm">
pnpx supabase start
</TabPanel><TabPanel id="brew" label="brew">
supabase start
View your local Supabase instance at http://localhost:54323.
If your local development machine is connected to an untrusted public network, you should create a separate docker network and bind to 127.0.0.1 before starting the local development stack. This restricts network access to only your localhost machine.
docker network create -o 'com.docker.network.bridge.host_binding_ipv4=127.0.0.1' local-network
npx supabase start --network-id local-network
You should never expose your local development stack publicly.
</Admonition>Local development with Supabase allows you to work on your projects in a self-contained environment on your local machine. Working locally has several advantages:
To get started with local development, you'll need to install the Supabase CLI and Docker. The Supabase CLI allows you to start and manage your local Supabase stack, while Docker is used to run the necessary services.
Once set up, you can initialize a new Supabase project, start the local stack, and begin developing your application using local Supabase services. This includes access to a local Postgres database, Auth, Storage, and other Supabase features.
The Supabase CLI is a powerful tool that enables developers to manage their Supabase projects directly from the terminal. It provides a suite of commands for various tasks, including:
With the CLI, you can streamline your development workflow, automate repetitive tasks, and maintain consistency across different environments. It's an essential tool for both local development and CI/CD pipelines.
See the CLI Getting Started guide for more information.