Branch Types
Skysize supports three types of branches to accommodate different stages of your development workflow: Production, Staging, and Development.
On a project without a repository, environments are not tied to Git branches: production is a single environment named main, staging environments are created from the Branches tab with New staging, and development environments are not available (they only exist to test code changes).
Production Branches
Production branches host your live application with real user data.
Characteristics
- Main database: Contains your production data
- Automatic daily backups: Production deployments are backed up automatically on a rolling 24-hour schedule (see Backups)
- Always active: Production deployments remain running continuously and are never garbage-collected
- One per project: Each project can have a single production branch
- Stable environment: Designed for reliability and uptime
Default Domain
Production branches use the following domain pattern:
project-name.skysize.io
Staging Branches
Staging branches provide a testing environment that mirrors production.
Characteristics
- Testing databases: Built from a snapshot of your production database for realistic testing
- Always active: Staging deployments remain running continuously and are never garbage-collected
- Requires production: A staging branch can only exist alongside a production branch
- No repository needed: On projects without a repository, create one with New staging on the Branches tab
- Pre-production testing: Test changes before deploying to production
- Production parity: Similar configuration to your production environment
Default Domain
Staging branches use the following domain pattern:
build_name.staging.skysize.io
Use Cases
- Testing new features with production-like data
- QA and user acceptance testing
- Integration testing
- Pre-release validation
Development Branches
Development branches are designed for active development and experimentation.
Characteristics
- Demo data: Created with Odoo demo data rather than production data, so you can experiment freely
- Automatic garbage collection: The deployment's database is dropped about 24 hours after the build, freeing resources automatically
- Ephemeral: Intended for short-term use
- Cost-effective: Saves resources by cleaning up unused environments
Default Domain
Development branches use the following domain pattern:
build_name.dev.skysize.io
Use Cases
- Feature development
- Bug fixes
- Experimental changes
- Developer testing
Development deployments are disposable. About 24 hours after a build, the database is dropped. If you push again to the same branch later, Skysize builds a fresh deployment with a new database, it does not restore the old data. Never keep anything you need to keep on a development deployment; use staging or production for persistent data.
Choosing the Right Branch Type
| Requirement | Production | Staging | Development |
|---|---|---|---|
| Live user data | ✅ | ❌ | ❌ |
| Production data snapshots | ❌ | ✅ | ❌ |
| Persistent environment | ✅ | ✅ | ❌ (24 hours) |
| Daily backups | ✅ | ❌ | ❌ |
| Cost optimization | ❌ | Medium | ✅ |
Best Practices
- Use staging for pre-release testing: Always test changes on staging before deploying to production
- Keep development branches active: Development branches are auto-deleted after 24 hours, so redeploy if needed
- Separate concerns: Use production for live data, staging for testing, and development for building features