Everything as code¶
Some of the advantages of having everything as code are:
You can use git (or any other VCS) for versioning and collaboration.
You can have automated tests.
You can have a CI/CD system in place for automatic testing and deployment.
Each developer writes code and tests locally, and publishes to their own Smartmate workspace (e.g. https://developer1.mycompany.smartmate.io) for creating E2E tests.
Once a new feature is ready, the developer pushes it to a new branch, creates the PR, so the code can be reviewed by a peer, and then the code is merged.
You can use the branching strategy of your preference.
The CI/CD system runs the unit tests and publishes the workspace to a staging environment. (e.g. https://staging.mycompany.smartmate.io).
The CI/CD system runs the E2E tests on the staging environment.
If the unit and E2E tests pass, the CI/CD system publishes the workspace to the production environment. (e.g. https://mycompany.smartmate.io).
Smartmate unit and E2E tests are on the road map, but not implemented yet.
Still, you can test your custom business logic using the unit tests framework of your preference, and you can test your apps end to end by simulating a real user, using any E2E testing framework.
As you can see, for this workflow you need at least the following Smartmate environments:
one environment for each developer
a staging environment
a production environment
The multiple environments per account feature is on the road map, but not implemented yet.
Anyways, you can setup a different account for each one of the environments you need.