Monorepos & workspaces
Workspace monorepos build the way they do on your machine: install at the root, build the member.
When an app's root directory points into a workspace monorepo — a repo with pnpm-workspace.yaml or a workspaces field in the root package.json — Buildfyio detects it and builds from the repository root:
- Dependencies install once at the root, against the root lockfile.
workspace:*protocol dependencies resolve to their sibling packages, exactly as locally.- The build then runs inside your app's directory (
cd apps/web && next build), with both the root and the member'snode_modules/.binonPATH.
node_modules. Apps that import a package declared only by a sibling workspace package — a common pattern in real monorepos — build without changes.Example
repo/ ├─ package.json # "workspaces": ["apps/*", "packages/*"] ├─ pnpm-lock.yaml ├─ apps/ │ ├─ web/ # Next.js → project primary app │ ├─ admin/ # Astro → app "admin" │ └─ worker/ # Node → app "worker" (background) └─ packages/ ├─ ui/ └─ db/ # prisma schema lives here — generate runs automatically
Import the repo once; discovery lists apps/web, apps/admin, and apps/worker with the right framework each. Select the ones to deploy — each becomes an app in the same project with its own subdomain, environment scope, and deploy history.
Turborepo / Nx
Nothing special required. The workspace detection above covers Turborepo and Nx repos; your app's build command can be the package script (next build) or a pipeline invocation (turbo run build --filter=web) — both run from the right directory with root binaries available.
Vercel-configured repos
Repos written for Vercel deploy without modification. The one incompatibility we adapt automatically is the Astro Vercel adapter — see Builds → Framework notes.