A monorepo (mono repository) is a single repository that stores all of your code and assets for multiple projects.
Launch supports deploying a project from a monorepo.
This step-by-step guide lets you deploy a project from a monorepo on Launch.
We will be using the following Turborepo monorepo for this tutorial.

As seen in the above screenshot, there are four distinct projects in the apps folder. We will deploy the web project, which is a NextJS site.
Follow the steps to deploy a project from a monorepo.

npm run build -- --filter web


You have successfully deployed a project from a monorepo.
This limitation particularly impacts projects with directory structures where build outputs are located separately from the source directory.
For instance, let’s consider a Next.js-based website within a monorepo structured as /apps/mywebsite. If the build output is directed to /dist/apps/mywebsite/.next, it falls outside the source directory /apps/mywebsite, making the deployment of this build output unsupported.
Some monorepo tools, such as Nx, by default, output builds to a different dist directory outside the source directory. To address this, you can configure Nx to support deployments on Launch.
If your Turborepo-based monorepo build fails due to unexpected package resolutions or missing dependencies, consider the following steps:
When performing a filtered build, ensure that only the intended frontend package is included in the build process.
Example:
npm run build -- --filter=your-frontend-folder-name
If your frontend project (web) imports files from another package in the monorepo (for example, middleware), ensure that the dependency is explicitly declared in the consuming package’s package.json file.
Example Folder Structure:
/monorepo-root
│── apps/
│ ├── web/ # Frontend app (consuming package)
│ │ ├── package.json ✅ Needs dependency
│ ├── middleware/ # Another package providing modules
│ │ ├── getRelatedProducts.ts
│ │ ├── package.json
│── package.json
To ensure proper resolution, add @repo/middleware to apps/web/package.json
Tip: Sync all dependencies from /middleware/package.json to /web/package.json,
ensuring /web has everything it needs.
If apps/web imports getRelatedProducts.ts from apps/middleware, update apps/web/package.json:
{
"dependencies": {
"@repo/middleware": "workspace:*"
}
}Without this explicit declaration, the build process may fail because dependencies that work locally might not be properly resolved in the deployment environment.