# Supbuddy > Run multiple Supabase projects at once on one Mac, each with its own custom local domain. Stop fighting `supabase start` port conflicts. Supbuddy is a macOS app for developers who work on more than one Supabase project. Stock Supabase CLI can only run one project at a time — `supabase start` collides on ports 54321/54322/54323. Switching projects means stopping the current one, waiting, starting the new one. Supbuddy keeps every project's full stack (Postgres, Auth, Studio, Storage, Realtime) running simultaneously, each isolated from the others, each reachable on its own custom domain like `api.acme.local`, `studio.billing.local`, `db.crm.local`. ## Who it's for - **Agencies and freelancers** with multiple Supabase clients on one machine - **Monorepo developers** running several internal apps that each need their own Supabase - **Anyone tired of typing `supabase stop && supabase start`** ten times a day - **Teams working on multi-tenant Supabase setups** locally ## What problem it solves The core pain: Supabase CLI binds to fixed ports. You can only have ONE project running. To work on a second project you must stop the first — which kills any in-flight queries, breaks your dev server's connection pool, and forces you to re-seed if you were mid-test. Supbuddy makes that constraint disappear by giving each project its own isolated environment with stable hostnames. ## Key concepts - **Project isolation**: each Supabase project runs in its own Docker-in-Docker environment, so port 54321 in project A doesn't fight port 54321 in project B. - **Custom domains**: instead of `localhost:54321`, you get `api..local`. Customizable TLD (`.local`, `.test`, `.dev`, your own). - **Stable database hostnames**: `db..local:` — survive restarts, no more "what port did Docker assign this time". - **Auto-trusted HTTPS**: a local Certificate Authority installs into your keychain once; every domain gets the green padlock automatically. - **Monorepo-aware**: detects Turborepo, Nx, npm/yarn/pnpm workspaces and maps each app's dev server to its own subdomain. - **Switch active projects with one click**: free tier keeps two running, Pro keeps unlimited running. - **AI-agent ready**: built-in MCP server lets Claude Code, Cursor, Codex, Windsurf, and any MCP-compatible tool drive Supbuddy directly — list projects, restart a Supabase, write env keys. - **Per-project AI context sync**: each project can auto-write `.supbuddy/`, `AGENTS.md`, `CLAUDE.md`, and editor skill files (Cursor / Claude / Copilot / Windsurf / Continue / JetBrains) so agents working in that repo see live mappings + services without asking. Volatile state and fully-owned skill files are gitignored automatically; `AGENTS.md` / `CLAUDE.md` / `copilot-instructions.md` stay committable because Supbuddy only writes a managed block inside them. - **In-app fixers**: when a Next.js project is missing a Supbuddy subdomain in `experimental.serverActions.allowedOrigins`, Supbuddy offers a one-click Apply with diff preview that edits `next.config` for you. - **Configure tab — project cards**: each project is a card with a single-row always-visible header (chevron + name, consolidated status indicator dot aggregating VM/Supabase/Compose/scripts/AI sync/conflicts, tech badges, warning pills, read-only env-mode chip `Host`/`Isolated`, clickable issues counter, enable toggle on the right) and a tab-based body (Apps · Supabase · Compose · Other · Scripts · AI Tools · Settings). Tabs are conditional — Supabase/Compose/Other/Scripts only appear when relevant. The Supabase tab hosts the host/isolated switcher, VM lifecycle controls, and a first-class `Connect` button. Below ~480 px the tab strip collapses to a dropdown. Clicking the issues counter opens a popover with click-to-jump-to-tab links. ## Use cases - "I'm an agency. I have 8 Supabase clients. I need all 8 reachable so I can context-switch instantly without re-seeding databases." → run them all, toggle which two are 'active' on Free, all on Pro. - "I'm building a monorepo with 3 Next.js apps and 2 Supabase projects." → each app gets a domain (`web.acme.local`, `admin.acme.local`), each Supabase gets its own subdomain set. - "I need to share my dev server with a designer on her laptop / my phone." → LAN sharing is built in. `.local` TLD works correctly on both this machine and the LAN simultaneously (the mDNS responder filters out self-queries so the OS resolver routes them to 127.0.0.1, while other devices still get the LAN IP). - "I want my AI agent to spin up a project, restart Supabase, and write env keys without me copy-pasting." → MCP server. ## Pricing - **Free**: 5 domain mappings, 2 active Supabase projects (toggle which two), full HTTPS, full DNS, MCP read access. - **Pro Monthly**: $7/mo — unlimited projects active simultaneously, MCP write access, LAN sharing, Tailscale, custom TLDs. - **Pro Lifetime**: $79 one-time — pay once, never think about it. ## Links - Download (free, macOS): https://supbuddy.app/api/download - Pricing: https://supbuddy.app/pricing - Homepage: https://supbuddy.app ## Platform macOS (Apple Silicon and Intel). Windows and Linux not supported in v2. ## What this is NOT - Not a Supabase replacement. Supbuddy *runs* the official Supabase CLI inside isolated environments — same Postgres, same Studio, same auth. - Not a deployment tool. Local development only. - Not a hosts file editor. It runs a real DNS server + reverse proxy under the hood, but you don't have to know that.