Environments
Contentful environments allow you to manage different versions of your content and configuration. Environments act as isolated spaces within your Contentful space where you can experiment, test, and stage changes without affecting your live content.
Key Concepts
1. Main Environment
Every Contentful space starts with a default environment called
master
. This is typically the environment where your production or live content resides.The
master
environment is crucial for your published content, and it's recommended to use it for content that is live on your website or application.
2. Environment Cloning
You can clone the
master
environment or any other environment to create a new environment. This new environment will be an exact copy of the original, including all content, entries, assets, and configuration.Cloning is useful for creating staging environments, where you can test changes before they go live.
3. Environment Types
Production Environments: typically used for live content that is publicly accessible.
Staging Environments: used for testing new features, content, and configurations before they are published to the production environment.
Development Environments: used by developers to experiment with new ideas, test code, and integrate new features.
4. Environment Aliases
Environment aliases allow you to switch the environment that is served at a specific alias without changing the actual environment name.
This is particularly useful when deploying updates, as you can seamlessly switch between environments without changing any code in your application.
5. Managing Environments
You can manage environments via the Contentful web app, Content Management API (CMA), or CLI.
Operations include creating, deleting, and updating environments, as well as promoting a staging environment to production.
Best Practices
1. Use Separate Environments for Different Stages
It's recommended to have distinct environments for development, staging, and production. This separation ensures that changes can be tested and reviewed before going live.
2. Limit Access to Production Environment
Restrict access to the
master
environment to prevent accidental changes. Use roles and permissions to control who can make changes in each environment.
3. Regularly Sync Environments
Keep your staging and development environments in sync with production to ensure that testing reflects the live environment accurately. Regularly clone the
master
environment to staging or development as needed.
4. Automate Environment Management
Use the Contentful CLI or API to automate environment creation, cloning, and promotion processes. This can help streamline your workflow and reduce the risk of human error.
5. Utilize Environment Aliases
Take advantage of environment aliases to minimize downtime during deployments. This allows you to prepare changes in a new environment and switch them live instantly.