Loading the skills library…

Deploys and manages full-stack web applications (Next.js, Angular) with Server-Side Rendering (SSR) using Firebase App Hosting. Use when deploying Next.js/Angular apps, configuring apphosting.yaml or firebase.json apphosting blocks, managing secrets, setting up GitHub CI/CD, or configuring Blaze billing requirements. Don't use for classic static web hosting, Auth, Firestore, Crashlytics, or Xcode.
npx skills add firebase/agent-skills --skill firebase-app-hosting-basicsInstalls from the source repository, including any supporting files.
Downloads contain the instructions shown here. Use the install command for the complete skill.
This skill enables the agent to deploy and manage modern, full-stack web applications (Next.js, Angular, etc.) using Firebase App Hosting.
Important: In order to use App Hosting, your Firebase project must be on the Blaze pricing plan. Direct the user to https://console.firebase.google.com/project/_/overview?purchaseBillingPlan=metered to upgrade their plan.
Choose Firebase Hosting if:
Choose Firebase App Hosting if:
This is the recommended flow for most users.
Configure firebase.json with an apphosting block.
{
"apphosting": {
"backendId": "my-app-id",
"rootDir": "/",
"ignore": [
"node_modules",
".git",
".next",
".vercel",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
}
Create or edit apphosting.yaml- see
Configuration for more information on how to
do so.
Create the backend if it does not exist (apphosting:backends:list; switch
--primary-region, e.g. us-east4, if a region hits its 10-backend quota):
npx -y firebase-tools@latest apphosting:backends:create --backend my-app-id --primary-region us-central1 --root-dir /
For sensitive keys/secrets (e.g., from .env*), set and grant access after
creating the backend and reference via secret: (never value:):
printf '%s' '<value>' | npx -y firebase-tools@latest apphosting:secrets:set <secret-name> --data-file - --force
npx -y firebase-tools@latest apphosting:secrets:grantaccess <secret-name> --backend my-app-id
Run npx -y firebase-tools@latest deploy when you are ready to deploy.
Alternatively, set up a backend connected to a GitHub repository for automated
"git push" deployments. For GitHub-connected backends, trigger rollouts with
npx -y firebase-tools@latest apphosting:rollouts:create <backend-id> --git-branch <branch>
(do not use rollouts:create when deploying from local source with deploy).
For other backend or secret flags (backends:get, backends:delete, etc.), run
npx -y firebase-tools@latest <command> --help.
See Emulation for more information on how to test your app locally using the Firebase Local Emulator Suite.
---
name: firebase-app-hosting-basics
description: >-
Deploys and manages full-stack web applications (Next.js, Angular) with Server-Side Rendering (SSR) using Firebase App Hosting. Use when deploying Next.js/Angular apps, configuring apphosting.yaml or firebase.json apphosting blocks, managing secrets, setting up GitHub CI/CD, or configuring Blaze billing requirements. Don't use for classic static web hosting, Auth, Firestore, Crashlytics, or Xcode.
metadata:
author: Google LLC
category: Serverless
---
# App Hosting Basics
## Description
This skill enables the agent to deploy and manage modern, full-stack web
applications (Next.js, Angular, etc.) using Firebase App Hosting.
**Important**: In order to use App Hosting, your Firebase project must be on the
Blaze pricing plan. Direct the user to
https://console.firebase.google.com/project/_/overview?purchaseBillingPlan=metered
to upgrade their plan.
## Hosting vs App Hosting
**Choose Firebase Hosting if:**
- You are deploying a static site (HTML/CSS/JS).
- You are deploying a simple SPA (React, Vue, etc. without SSR).
- You want full control over the build and deploy process via CLI.
**Choose Firebase App Hosting if:**
- You are using a supported full-stack framework like Next.js or Angular.
- You need Server-Side Rendering (SSR) or ISR.
- You want an automated "git push to deploy" workflow with zero configuration.
## Deploying to App Hosting
### Deploy from Source
This is the recommended flow for most users.
1. Configure `firebase.json` with an `apphosting` block.
```json
{
"apphosting": {
"backendId": "my-app-id",
"rootDir": "/",
"ignore": [
"node_modules",
".git",
".next",
".vercel",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
}
```
1. Create or edit `apphosting.yaml`- see
[Configuration](references/configuration.md) for more information on how to
do so.
1. Create the backend if it does not exist (`apphosting:backends:list`; switch
`--primary-region`, e.g. `us-east4`, if a region hits its 10-backend quota):
```bash
npx -y firebase-tools@latest apphosting:backends:create --backend my-app-id --primary-region us-central1 --root-dir /
```
1. For sensitive keys/secrets (e.g., from `.env*`), set and grant access after
creating the backend and reference via `secret:` (never `value:`):
```bash
printf '%s' '<value>' | npx -y firebase-tools@latest apphosting:secrets:set <secret-name> --data-file - --force
npx -y firebase-tools@latest apphosting:secrets:grantaccess <secret-name> --backend my-app-id
```
1. Run `npx -y firebase-tools@latest deploy` when you are ready to deploy.
### Automated deployment via GitHub (CI/CD)
Alternatively, set up a backend connected to a GitHub repository for automated
"git push" deployments. For GitHub-connected backends, trigger rollouts with
`npx -y firebase-tools@latest apphosting:rollouts:create <backend-id> --git-branch <branch>`
(do not use `rollouts:create` when deploying from local source with `deploy`).
For other backend or secret flags (`backends:get`, `backends:delete`, etc.), run
`npx -y firebase-tools@latest <command> --help`.
## Emulation
See [Emulation](references/emulation.md) for more information on how to test
your app locally using the Firebase Local Emulator Suite.