Stay organized with collections
Save and categorize content based on your preferences.
With monorepos, you can organize and manage multiple projects in a single
directory. This guide describes how to get started deploying Nx-based apps with
App Hosting.
Deploy monorepos with the Firebase console
Monorepo support is built into the graphical backend setup flow in the Firebase
console. When prompted for a "Root directory" under "Deployment settings,"
specify the path to the application you want to deploy inside the monorepo:
Deploy monorepos with the Firebase CLI
Monorepo support is built into the backend setup flow invoked by the Firebase
CLI command apphosting:backends:create. After you enter this flow and specify
your chosen GitHub repository, you are prompted to specify your app's root
directory relative to your repository; at this prompt, pass the path to the
application you want to deploy inside the monorepo:
$ firebaseapphosting:backends:create--project[project-name]i === Import a GitHub repository✔ Connected with GitHub successfully? Which GitHub repo do you want to deploy? gh-username/nx-monorepo? Specify your app's root directory relative to your repository path/to/app
For example, here are the assets that would be deployed given the following Nx
project structure and "target-app" as the application you want to build and
deploy:
The app's root directory relative to your repository is apps/target-app.
Troubleshooting monorepo deployment
If you do not specify the "root directory" field, then the build will fail
and display a message that
App Hosting cannot find a project to target inside the Nx monorepo.
For Nx + Angular applications, you must use the Angular application
builder to build the application. The
Angular application builder is specified in project.json
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-19 UTC."],[],[],null,["\u003cbr /\u003e\n\nWith monorepos, you can organize and manage multiple projects in a single\ndirectory. This guide describes how to get started deploying Nx-based apps with\nApp Hosting.\n\nDeploy monorepos with the Firebase console\n\nMonorepo support is built into the graphical backend setup flow in the Firebase\nconsole. When prompted for a \"Root directory\" under \"Deployment settings,\"\nspecify the path to the application you want to deploy inside the monorepo:\n\nDeploy monorepos with the Firebase CLI\n\nMonorepo support is built into the backend setup flow invoked by the Firebase\nCLI command `apphosting:backends:create`. After you enter this flow and specify\nyour chosen GitHub repository, you are prompted to specify your app's root\ndirectory relative to your repository; at this prompt, pass the path to the\napplication you want to deploy inside the monorepo: \n\n $ firebase apphosting:backends:create --project [project-name]\n i === Import a GitHub repository\n ✔ Connected with GitHub successfully\n\n ? Which GitHub repo do you want to deploy? gh-username/nx-monorepo\n ? Specify your app's root directory relative to your repository path/to/app\n\nFor example, here are the assets that would be deployed given the following Nx\nproject structure and \"target-app\" as the application you want to build and\ndeploy: \n\n .\n ├── lib\n ├── apps\n │ └── target-app\n │ ├── project.json\n │ └── src\n │ └── ...\n ├── nx.json\n ├── package-lock.json\n └── package.json\n\nThe app's root directory relative to your repository is `apps/target-app`.\n\nTroubleshooting monorepo deployment\n\n- If you do not specify the \"root directory\" field, then the build will fail and display a message that App Hosting cannot find a project to target inside the Nx monorepo.\n- For Nx + Angular applications, you must use the [Angular application\n builder](https://angular.io/guide/esbuild) to build the application. The Angular application builder is specified in `project.json`"]]