CICD Blog Series:

Building from Scratch

Previously we talked about getting our metadata ready. So what is next? We will start using scratch orgs!

Scratch what?

Scratch Orgs. The chances are you have never used or even heard of them. In the more traditional Salesforce development processes Sandboxes are used to build new features and change sets are used to transport those changes to other sandboxes or the production org. You don’t do any changes in production? Right?


So what is a scratch org, it is a deposable new salesforce environment. It is created based on a configuration file, not an existing environment. Forget about org shapes for now if you know what they are. For CICD we will have to create a configuration file mimicking our production environment in features, settings and licenses.

A pool full of Scratch Orgs

Now our next big decision is coming up, do we create new orgs every time from scratch, or do we invest in creating a pool with partially created scratch orgs? The main deciding factor are installed packages. Does your metadata depend on a set of packages which take considerable time to install? A pool could then provide a time saving any time a scratch org needs to be created. And you should create a lot of them, whenever you:

  • Start a new feature branch.
  • Test a new feature.
  • Start automated testing.
  • Run a ‘build’.
  • Perform development tasks directly in an org.


The created scratch org will be without your metadata, so the next step is pushing your metadata. This sounds easy but is often a process containing multiple steps due to metadata dependencies.


And last but not least make it easy on yourself, so think about generating data and users in your scratch org, this eases the development and testing done in scratch orgs.

CICD Blog Series

We are getting closer to doing some actual CICD, it is about time right?

Next Blog is coming soon! →

Curious to know what we can do for your organization?

Please contact Davy

Fill out this field
Geef een geldig e-mailadres op.
Fill out this field