finds.dev← search

// the find

supabase/cli

★ 2,285 · TypeScript · updated Jun 2026

Supabase CLI. Manage postgres migrations, run Supabase locally, deploy edge functions. Postgres backups. Generating types from your database schema.

The official CLI for Supabase — it runs the full local stack (Postgres, Auth, Realtime, Storage, Edge Functions) via Docker, manages migrations, deploys Deno edge functions, and generates TypeScript types from your schema. It's the primary developer interface for anyone building on Supabase, whether local-first or connected to a hosted project.

The local dev stack is genuinely well-integrated: one `supabase start` brings up a production-equivalent environment with all services wired together, not just a Postgres container. The migration workflow (`db diff` + `db push`) is solid — it compares your local schema against the linked project and generates migrations rather than asking you to write them by hand. Type generation from the live schema saves real time on typed Supabase clients. The test suite uses recorded HTTP fixtures for the management API, so unit tests don't require a live Supabase account.

The CLI is tightly coupled to Docker — if Docker isn't running or is misconfigured, the local stack fails in ways that produce confusing errors, especially on Windows. It's a pnpm monorepo with a Go subpackage (`apps/cli-go`) that still powers parts of the legacy shell; the dual-language split is a maintenance burden and the Go components aren't well-documented for contributors. Migration diffing can generate incorrect SQL when you have complex RLS policies or custom types — it's gotten better but still needs manual review before pushing to production. Edge Function local serving requires Deno installed separately and behaves differently from the deployed Deno runtime in subtle ways that only surface at deploy time.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →