Developer Docs

Create A New FireUX Ecosystem

This page is the canonical quick-start for creating a new ecosystem and wiring Firebase in the correct places.

Docs hierarchy

  • /ecosystems: create a new ecosystem and wire Firebase project-level config.
  • /apps: create global or tenant apps under an ecosystem.

1. Create Firebase Project

  1. Create a new Firebase project.
  2. Switch billing plan from Spark to Blaze.
  3. Enable Authentication, Firestore, and Storage.
  4. Create a Web App for your global app.
  5. Save these values from Firebase Web config and place them as follows: apiKey, authDomain, projectId, storageBucket, messagingSenderId, appId, optional measurementId.
  6. Create a service account key JSON for local admin/server tasks and place it at packages/ecosystem/fireux-<name>/src/config/firebase/service-account.json.

Firebase console checklist (Bringli baseline):

  • Auth providers: enable Google, Email/Password, and Anonymous.
  • Google Auth support email can be temporary now. TODO: replace personal Gmail with business support email.
  • Set server region to Zurich europe-west6.
  • TODO (FireUX): enable additional auth providers later.

2. Create Ecosystem Package

Fast path command (repo-local scaffolder):

pnpm create:ecosystem -- --name <name> --firebase-project <firebase-project-id>

This is the repo equivalent of an npm create flow for ecosystems. Use pnpm create:ecosystem -- --help for options. Display labels are auto-generated from <name>.

Install Firebase CLI first:

npm install -g firebase-tools

Use this package shape:

  • packages/ecosystem/fireux-<name>/package.json
  • packages/ecosystem/fireux-<name>/registry.json
  • packages/ecosystem/fireux-<name>/README.md
  • packages/ecosystem/fireux-<name>/docs/
  • packages/ecosystem/fireux-<name>/.firebaserc
  • packages/ecosystem/fireux-<name>/tsconfig.json
  • packages/ecosystem/fireux-<name>/src/module.ts
  • packages/ecosystem/fireux-<name>/src/config/firebase/ecosystem.config.ts
  • packages/ecosystem/fireux-<name>/src/config/firebase/service-account.json (commit placeholder shape only; keep real credentials out of git)
  • packages/ecosystem/fireux-<name>/src/runtime/public/

3. Place Firebase Values Correctly

  • Put apiKey, authDomain, projectId, storageBucket, messagingSenderId in packages/ecosystem/fireux-<name>/src/config/firebase/ecosystem.config.ts under the firebase object.
  • Put Firebase web appId in app .env: NUXT_FIREBASE_APP_ID.
  • Put optional Firebase web measurementId in app .env: NUXT_FIREBASE_MEASUREMENT_ID.
  • Save service account JSON at packages/ecosystem/fireux-<name>/src/config/firebase/service-account.json.
  • Set default Firebase project binding in packages/ecosystem/fireux-<name>/.firebaserc.

4. Create Global App

For full app scaffolding and app-level env/deploy configuration, continue to /apps.

  • projects/<ecosystem>/<app-id>/app/
  • projects/<ecosystem>/<app-id>/public/
  • projects/<ecosystem>/<app-id>/server/
  • projects/<ecosystem>/<app-id>/nuxt.config.ts
  • projects/<ecosystem>/<app-id>/package.json
  • projects/<ecosystem>/<app-id>/tsconfig.json
  • projects/<ecosystem>/<app-id>/firebase.json
  • projects/<ecosystem>/<app-id>/.env

Add ecosystem-level Firebase project binding at projects/<ecosystem>/.firebaserc.

Do not place .firebaserc inside app folders under projects/*/*.

Setup Hosting during app scaffold and use a clean site id without numeric noise when possible (example: bringli).

TODO per app: define and test Firestore Database Rules before production release.

5. Nuxt Config Pattern

export default defineNuxtConfig(
  defineFireuxConfig({
    ecosystem: '<ecosystem>',
    id: '<app-id>',
    name: '<App Name>',
    shortName: '<Short Name>',
    role: 'global',
    modules: ['fireux-<name>'],
  })
)

6. Local Credential Setup

Preferred local setup: GOOGLE_APPLICATION_CREDENTIALS points to packages/ecosystem/fireux-<name>/src/config/firebase/service-account.json.

Alternatives: FIREBASE_SERVICE_ACCOUNT_FILE or FIREBASE_SERVICE_ACCOUNT.

7. Validate

  1. pnpm guard
  2. pnpm typecheck:packages
  3. pnpm typecheck:apps
  4. Run app and verify /dev environment panel is healthy.
FireUX logoFIReUX © 2026All rights reserved.