Issue
As a developer working with Appsmith, I need to know the recommended development process for separating the stages of development, beta, and production. Currently, I find it difficult to work with the same database and APIs in all stages. I am wondering if there are any suggested ways to separate the stages or if Appsmith offers any CI/CD capabilities.
Resolution
The recommended dev process with Appsmith is to use separate environments for development, staging, and production. This can be achieved using Git, where each environment is represented by a Git branch.
In the development environment, developers can create and edit the site and make changes to the database and API calls. They can commit their changes to the development branch, and Appsmith will automatically pick up the changes and deploy them to the development environment.
Once the changes have been tested and approved, they can be merged into the staging branch. The staging environment is used for pre-production testing before changes are deployed to the production environment.
Finally, changes can be merged into the production branch and deployed to the production environment.
To set up separate environments, you can create a separate Appsmith instance for each environment and link them to the appropriate Git branches. You can also use environment variables to configure each environment with the appropriate database and API credentials.
Here's an example of how to create a new environment using the Appsmith CLI:
appsmith clone <source_environment> <new_environment> --branch=<git_branch>
This will create a new Appsmith instance for the new environment and link it to the specified Git branch. You can then configure the environment variables and begin developing and testing in the new environment.