Skip to content

Projects

Projects are the top-level organizational unit in brdz, providing a way to group related applications together.

A project represents a logical collection of applications. Think of it as a workspace or namespace where you can organize multiple related apps.

Examples:

  • A company might create projects for different products or services
  • A developer might separate personal, freelance, and open-source projects
  • Teams might organize projects by client, department, or environment
Account
├── Project: production
│ ├── App: web-frontend
│ ├── App: api-backend
│ └── App: admin-panel
├── Project: staging
│ ├── App: web-frontend
│ └── App: api-backend
└── Project: personal
└── App: portfolio-site

A unique identifier for the project.

  • Must be unique within your account
  • URL-safe (lowercase letters, numbers, hyphens)
  • Cannot be changed after creation
  • Used in CLI commands and API calls

Examples: production, staging, my-project

Projects support multiple team members.

  • Control who can access the project
  • Members can manage apps within the project
  • Separate access control per project

A project contains zero or more applications.

  • Each app belongs to exactly one project
  • Apps within a project are independent
  • Projects provide organizational structure

Group related applications together.

Project: e-commerce
├── App: storefront
├── App: checkout
├── App: admin-dashboard
└── App: api

Maintain separate projects for different environments.

Account
├── Project: production
├── Project: staging
└── Project: development

Control team access at the project level.

Project: client-acme
├── Members: dev-team, client-team
└── Apps: website, portal
Project: internal-tools
├── Members: dev-team only
└── Apps: dashboard, analytics

Keep resources separate and manageable.

Project: website
└── Apps: frontend, backend
Project: mobile-apps
└── Apps: ios-app, android-app
Terminal window
brdz projects:create my-project

A new project is created with:

  • Unique slug
  • Creation timestamp
  • Your account as owner
  • Empty app list
Terminal window
brdz ctx:use # Select the project
brdz apps:create my-app

Apps are created within the project context.

Terminal window
# Add team members (if supported)
brdz projects:add-member my-project user@example.com

Team members can now access and manage apps within the project.

Terminal window
# List projects
brdz projects:list
# Get project details
brdz projects:get my-project
# Update project (if supported)
brdz projects:update my-project --name "Production"

Choose clear, meaningful project slugs:

Good:

  • production
  • e-commerce-platform
  • client-acme-website

Bad:

  • proj1
  • test
  • asdf

Group apps that belong together:

Project: marketing
├── App: landing-page
├── App: blog
└── App: newsletter
Project: product
├── App: web-app
├── App: mobile-api
└── App: admin

Use different projects for different environments:

Project: production
Project: staging
Project: development

This provides:

  • Clear separation of concerns
  • Different access controls
  • Independent configurations

Think about your organizational needs:

By Environment:

production/
staging/
development/

By Product:

website/
mobile-app/
api/

By Client:

client-a/
client-b/
client-c/

By Team:

frontend-team/
backend-team/
devops-team/

Keep documentation about:

  • Project purpose and scope
  • Which apps belong in the project
  • Team members and their roles
  • Related resources and dependencies
Project: platform
├── App: user-service
├── App: payment-service
├── App: notification-service
├── App: api-gateway
└── App: admin-panel
Project: saas-production
├── App: main-app
├── App: admin-dashboard
└── App: api
Project: saas-staging
├── App: main-app
└── App: api
Project: client-acme-corp
├── App: corporate-website
└── App: employee-portal
Project: client-globex
├── App: marketing-site
└── App: web-app
Project: personal
└── App: portfolio
Project: feature-branches
├── App: feature-auth
├── App: feature-payments
└── App: feature-dashboard
Project: staging
└── App: integrated-app
Project: production
└── App: live-app
  • Slugs cannot be changed after creation
  • Choose carefully during creation
  • Plan your naming convention beforehand
  • Cannot delete projects with existing apps
  • Must delete all apps first
  • Deletion is permanent
  • Projects cannot be nested
  • Projects cannot share apps
  • Each app belongs to exactly one project