How To Create SFDX Demo Orgs

Creating demo orgs in SFDX for ISVs is a common practice to showcase the capabilities of an application or package built on the Salesforce platform.

How To Create SFDX Demo Orgs
Table of contents
Demo orgs provide a controlled environment where potential customers, partners, or stakeholders can explore and evaluate the features and functionality of your ISV solution.

Here's a general overview of the process of creating demo orgs in SFDX for ISVs:

Start by creating a developer edition org (using Trialforce)

This is the template for your demo orgs. SFDX provides command-line tools and features that streamline development, testing, and deployment.

In SFDX, you define a scratch org by making a scratch org definition file (a JSON file)

The file specifies various attributes, such as edition, features, licenses, and data.

Determine the specific configuration you want for your demo org

This includes customizations, preconfigured data, and installed packages required to showcase your ISV solution effectively.

SFDX provides automation tools like shell scripts, CI/CD systems, or the Salesforce CLI

These tools can help you script the creation, configuration, and customization of your demo orgs.

Use SFDX to deploy your application and any required metadata

This includes custom objects, fields, Apex code, or demo orgs.

Suppose your ISV solution requires preconfigured data to demonstrate its functionality

In that case, you can use tools like the Salesforce Data Import Wizard or the Data Loader to populate your demo orgs with representative data sets.

Moreover, SFDX allows you to track changes, version your code, and apply updates or bug fixes using source control systems like Git.

But there are some downsides to creating demo orgs using SFDX:

Creating the orgs, deploying and customizing the application, and loading data can be time-consuming, especially if you need to repeat the process frequently

Furthermore, although developer edition orgs are free, requiring additional features, licenses, or higher editions for your demo orgs may involve additional costs.

Each org consumes Salesforce resources, including storage, processing power, and API calls

Creating and maintaining multiple demo orgs may require monitoring and careful resource management to stay within limits.

As your ISV solution evolves and new versions are released, maintaining and updating demo orgs can become cumbersome

Each demo org may need to be updated individually.

Demo orgs are separate environments, which means you'll need to manage their lifecycle

This can add complexity to your overall environmental management.

Creating and managing demo orgs that mimic the integration setup can be challenging if your ISV solution relies on external systems or integrations

Additionally, if you open an org that has been used before, you might not be up to speed on what data has already been entered. You might run into duplication conflicts, putting your demo at risk.

Are you looking for a more straightforward way to create your demo orgs? Read on to learn how Hutte will be your best demo org friend.

Using scratch orgs to speed up your demo creation

Many people use scratch orgs to create demos using a different approach. They do this because scratch orgs come with the advantage of being easily replicated.

⚒️
With the help of a tool like Hutte, you can pull them so they are always available in a very fresh state. You can also pick individual orgs for individual demos, which is faster than using Salesforce trial mechanisms.

You will experience enhanced control to prepare different sets of demo data, for example, that you could then seed into the orgs using Hutte’s Custom Buttons.

Each team member might have their own dataset and could provision orgs in self-service without admin permissions to a Salesforce environment just from Hutte.

To understand how Hutte works, start your free 30-day trial, or check out our demo below.

Look at how you can visually utilize SFDX Git development with Hutte.

Enjoy a flexible environment for your scratch org creation

Using the "New scratch org" button, multiple users can create their own scratch orgs, which the team can access collectively.

​​With Hutte, you can select a Git branch from which to create your environment and name it.

💬
All your scratch orgs will be stored in one place, allowing you to view a historical overview or snapshot of your projects, apps, and codebases created in Git. This feature benefits teams that want to collaborate and contribute to each other's work.

Without Hutte, relying solely on CLI can be challenging. With Hutte, you can easily:

  • Load data
  • Make changes to the latest state of your source
  • Implement new features
  • Ship them to Git.

Once integrated with Hutte, developers can load the data on the scratch orgs dashboard rather than manually telling the team that they have provisioned an environment.

The team can find the branch by clicking "New scratch orgs," create a scratch org from that branch and view it in their list of scratch orgs.

You won't need to run the code locally or worry about it blocking your machine, as it will run asynchronously on Hutte's infrastructure. When your scratch org is ready, you can log in and test it without affecting other users' data.

Essentially, Hutte empowers users to manage and select their own environments easily, simplifying the scratch org data loading process.

Hutte is truly one of the best tools that we use. Product owners, Salesforce solution architects, business analysts — anyone on our team can easily and visually accomplish the tasks that would otherwise take a lot of clicks, time, and coding.

Sebastian Lechner

Product Management Director of IPfolio
Clarivate

Source: Hutte

Take a scratch org from the pool

Hutte has a pool of orgs pre-created for you, so you don't need to wait, as you can spin them up visually. Picking a scratch org from the pool speeds up the process even further when you need an environment from the latest state of your source.

🏊‍♂️
To claim a pool, simply choose "Take from the pool" and enter the desired pool name. Additionally, you can customize your pool by adjusting the size and duration in the "Settings" section.

This functionality allows you to customize your pool according to your requirements, offering you more flexibility and control over your resources and data.

🔌
Furthermore, you can name your org referencing the issue tracking system you use (such as Hutte’s Jira plugin). Once you’ve named the org, your environment will be in place.

With Hutte, you don’t need to share your sensitive and confidential Salesforce org credentials manually. You can simply one-click login, and you can then do your work on the platform.

Create new metadata and execute changes

You can create new SFDX metadata in your org, such as an Apex class.

In this instance, you add your logic to the Apex class and save it. This now becomes an addition to your environment.
  • To create a change, you will go to “Setup.” You will then select “Object Manager.” This is where the data model lives
  • You will then open up a custom object
  • You can make any change you desire as you have access to the data model. To implement a change to a field, for example, you will select “Field & Relationships”
  • Once you have made your change, you will save it. You will go to the “Changes” tab to view your changes.

In this example, the changes had the following impact on the org:

  • “MyClass” was added
  • The admin profile was touched by adding a new class
  • The field change was added.

You can pull changes

📁
From here, you can describe what you have done and select what you want to include from the changes you committed. You will then click on “Submit.” This will create your SFDX pull request, and your changes will get added to Git.

Enter the realm of simplicity

In the sphere of creating demo orgs, a myriad of technical steps once reigned, perplexing the minds of non-coding users.

Hutte empowers all users to effortlessly traverse the realms of scratch orgs and Git, molding alterations and conjuring pull requests with a single stroke.

No longer shall the shackles of complexity restrain your demo org creation!