Projects
Projects are the top-level organizational unit in brdz, providing a way to group related applications together.
What is a Project?
Section titled “What is a Project?”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
Project Structure
Section titled “Project Structure”Account├── Project: production│ ├── App: web-frontend│ ├── App: api-backend│ └── App: admin-panel├── Project: staging│ ├── App: web-frontend│ └── App: api-backend└── Project: personal └── App: portfolio-siteProject Properties
Section titled “Project Properties”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
Membership
Section titled “Membership”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
Why Use Projects?
Section titled “Why Use Projects?”1. Organization
Section titled “1. Organization”Group related applications together.
Project: e-commerce├── App: storefront├── App: checkout├── App: admin-dashboard└── App: api2. Environment Separation
Section titled “2. Environment Separation”Maintain separate projects for different environments.
Account├── Project: production├── Project: staging└── Project: development3. Access Control
Section titled “3. Access Control”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, analytics4. Resource Isolation
Section titled “4. Resource Isolation”Keep resources separate and manageable.
Project: website└── Apps: frontend, backend
Project: mobile-apps└── Apps: ios-app, android-appProject Lifecycle
Section titled “Project Lifecycle”1. Creation
Section titled “1. Creation”brdz projects:create my-projectA new project is created with:
- Unique slug
- Creation timestamp
- Your account as owner
- Empty app list
2. Adding Apps
Section titled “2. Adding Apps”brdz ctx:use # Select the projectbrdz apps:create my-appApps are created within the project context.
3. Team Collaboration
Section titled “3. Team Collaboration”# Add team members (if supported)brdz projects:add-member my-project user@example.comTeam members can now access and manage apps within the project.
4. Management
Section titled “4. Management”# List projectsbrdz projects:list
# Get project detailsbrdz projects:get my-project
# Update project (if supported)brdz projects:update my-project --name "Production"Best Practices
Section titled “Best Practices”1. Use Descriptive Names
Section titled “1. Use Descriptive Names”Choose clear, meaningful project slugs:
✅ Good:
productione-commerce-platformclient-acme-website
❌ Bad:
proj1testasdf
2. Organize by Purpose
Section titled “2. Organize by Purpose”Group apps that belong together:
Project: marketing├── App: landing-page├── App: blog└── App: newsletter
Project: product├── App: web-app├── App: mobile-api└── App: admin3. Separate Environments
Section titled “3. Separate Environments”Use different projects for different environments:
Project: productionProject: stagingProject: developmentThis provides:
- Clear separation of concerns
- Different access controls
- Independent configurations
4. Plan Your Structure
Section titled “4. Plan Your Structure”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/5. Document Your Projects
Section titled “5. Document Your Projects”Keep documentation about:
- Project purpose and scope
- Which apps belong in the project
- Team members and their roles
- Related resources and dependencies
Common Patterns
Section titled “Common Patterns”Microservices
Section titled “Microservices”Project: platform├── App: user-service├── App: payment-service├── App: notification-service├── App: api-gateway└── App: admin-panelMulti-tenant SaaS
Section titled “Multi-tenant SaaS”Project: saas-production├── App: main-app├── App: admin-dashboard└── App: api
Project: saas-staging├── App: main-app└── App: apiAgency/Freelance
Section titled “Agency/Freelance”Project: client-acme-corp├── App: corporate-website└── App: employee-portal
Project: client-globex├── App: marketing-site└── App: web-app
Project: personal└── App: portfolioDevelopment Workflows
Section titled “Development Workflows”Project: feature-branches├── App: feature-auth├── App: feature-payments└── App: feature-dashboard
Project: staging└── App: integrated-app
Project: production└── App: live-appLimitations
Section titled “Limitations”Project Slug Immutability
Section titled “Project Slug Immutability”- Slugs cannot be changed after creation
- Choose carefully during creation
- Plan your naming convention beforehand
Project Deletion
Section titled “Project Deletion”- 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
See Also
Section titled “See Also”- CLI: Projects - Project management commands
- Apps - Understanding apps within projects
- Context Management - Working with project context
- Quick Start - Creating your first project