Skip to content

TL-M0-16 · Supabase CLI and an empty local project

Why: The Supabase CLI owns the schema (D4) and runs the local stack. This step only proves the stack starts on this Mac; the Backend Engineer configures it and writes schema V13 next (BE packs A to E).

ID TL-M0-16 · Level L0 · Run order row 16

supabase/ exists with config.toml on Postgres 17, and the local stack starts and stops.

TL-M0-15 is Done. Docker Desktop is running.

1 · A branch, then the CLI as a pinned dev dependency. --allow-build=supabase lets its install script set up the CLI binary

Section titled “1 · A branch, then the CLI as a pinned dev dependency. --allow-build=supabase lets its install script set up the CLI binary”
Terminal window
git switch -c supabase/init
pnpm add -Dw -E supabase@2.119.0 --allow-build=supabase
pnpm supabase --version
Terminal window
pnpm supabase init
Terminal window
pnpm supabase start -x logflare,vector,imgproxy,edge-runtime
pnpm supabase status
pnpm supabase stop
Terminal window
git add -A
git commit -m "build(supabase): add the Supabase CLI and an empty project"
git push -u origin supabase/init
gh pr create --fill
gh pr checks --watch
gh pr merge --squash --delete-branch
git pull
  • Block 1: 2.119.0. Block 2: “Finished supabase init.”
  • Block 3: the first start downloads Docker images for several minutes, then “Started supabase local development setup.” with the local URLs (the API on port 54321, the database on 54322, Studio on 54323) and two keys. They should be a publishable key (sb_publishable_…) and a secret key (sb_secret_…); if they are called anon key and service_role key, write that in Runs, because it matters for D13. These local keys are the same on every machine and aren't secrets. Studio shows an empty public schema. Then “Stopped supabase local development setup.”
  • Block 4: checks pass and the pull request merges.
Terminal window
grep major_version supabase/config.toml
cat pnpm-workspace.yaml

major_version = 17. allowBuilds lists supabase: true.

  • A port is already in use: run pnpm supabase stop --all, then the start again.
  • The start times out or a container keeps restarting: paste the output and the output of docker stats --no-stream.
Terminal window
pnpm supabase stop --no-backup
git switch main
git branch -D supabase/init

Done 2026-10-06 (zuki)