Branch Types
Skysize supports three types of branches to accommodate different stages of your development workflow: Production, Staging, and Development.
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
- 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