Vite + shadcn/ui monorepo with FastAPI and Supabase.
apps/web— React, Vite, TanStack Router + Query, shadcn (presetb38nIqEID)apps/api— FastAPIpackages/ui— shared shadcn componentssupabase/— schema/migrations for the hosted project (optional CLI)
pnpm owns the JS workspace (apps/web, packages/*). uv owns the API.
pnpm install
uv sync --directory apps/api
cp apps/web/.env.example apps/web/.env
cp apps/api/.env.example apps/api/.envFill both .env files with the hosted Supabase project URL and keys from the dashboard. No local Supabase or Docker is required.
pnpm dev # web → http://localhost:5173
pnpm dev:api # API → http://localhost:8000
pnpm test:api # API pytestFrom the repo root:
pnpm dlx shadcn@latest add button -c apps/webImport from the shared package:
import { Button } from "@workspace/ui/components/button"