Deploying using a code package is the recommended way to use the [Deployment API](🔗). This workflow can also be used to do an urgent hotfix deployment to the Production environment, without having to go through the entire workflow of promoting the release through Preproduction first. However, releasing through the normal process of Integration, Preproduction and Production is still recommended.
The deployment process is as follows:
Build a code package for your application.
Upload the code package to a package repository in your DXP environment.
Start deployment of the package to target environment.
Track deployment status until the first stage of deployment is completed.
Validate the site on the slot, manually or using automated smoke tests.
**Complete** or **Reset** deployment depending on the validation results.
You can deploy code package to the Integration environment directly using Deployment API instead of the conventional way of publishing the code from Visual Studio. However when you do so, config transformation will be applied on the code deployed to Integration, if the deployment engine sees a valid transformation file to apply. For example, if there is a _web.integration.config_, it will be processed as part of the deployment flow. This is similar to when you deploy code from Integration to another environment using DXP management portal.