Skip to main content

Deployment

Prerequisites

  • Node 20+
  • pnpm (monorepo) — except yugma-functions which uses npm
  • Firebase CLI (npm install -g firebase-tools)
  • Firebase project yugmastudio-addcd

Build Commands

# From repo root
cd packages/yugma-app && ./node_modules/.bin/tsc --noEmit # Type check
cd packages/yugma-app && npm run build # Vite build
cd packages/yugma-functions && npm run build # Functions tsc

Deploy Commands

# Deploy everything
firebase deploy --only functions,hosting:app,firestore:rules,database

# Deploy individually
firebase deploy --only functions # Cloud Functions
firebase deploy --only hosting:app # Studio app
firebase deploy --only firestore:rules # Firestore security rules
firebase deploy --only database # RTDB rules (incl. /sensors/*)
firebase deploy --only storage # Storage rules

Hosting Targets

TargetSite IDURLSource
appyugmastudio-apphttps://yugmastudio-app.web.apppackages/yugma-app/dist
landingyugmastudiohttps://yugmastudio.web.apppackages/yugma-landing/dist
adminyugmastudio-adminhttps://yugmastudio-admin.web.apppackages/yugma-admin/dist
docsyugmastudio-docshttps://yugmastudio-docs.web.apppackages/yugma-docs/build

Secrets Configuration

Required for core features

# Anthropic (AI Composer, AI Materials)
echo "sk-ant-api03-..." | firebase functions:secrets:set ANTHROPIC_API_KEY

# Meshy (Text-to-3D)
echo "msy_..." | firebase functions:secrets:set MESHY_API_KEY

Optional

# Nexar/Octopart (Phase 14 product vibe-coder)
echo "..." | firebase functions:secrets:set NEXAR_API_KEY

Go-Live Checklist

  1. Enable auth providers in Firebase Console (Authentication → Sign-in method):
    • Email/Password — enable
    • Google — enable + set support email
  2. Set ANTHROPIC_API_KEY and MESHY_API_KEY secrets (see above)
  3. cd packages/yugma-functions && npm run build
  4. cd packages/yugma-app && npm run build
  5. firebase deploy --only functions,hosting:app,firestore:rules,database
  6. Test: sign in → send "Build a room" in AI composer → verify objects appear

Package Manager Traps

  • Monorepo uses pnpm (pnpm-workspace.yaml)
  • yugma-functions uses npm (Firebase Cloud Build runs npm install)
  • Do NOT run pnpm install in yugma-functions/
  • Use npm install --ignore-scripts when adding deps to functions (avoids firebase-admin gulp build issue)

Known Issues

  • firebase-admin@12.7.0 has a broken gulp build postinstall. Pinned to 12.6.0.
  • Functions package-lock.json was deliberately deleted to force npm install over npm ci in Cloud Build.