Skip to main content
Build the future with Agentforce at TDX in San Francisco or on Salesforce+ on March 5–6. Register now.

Use the "Sundae" Model to Build a Food Bank App

Learning Objectives

  • Explain CumulusCI and its relationship to collaboration with Salesforce.
  • Explain GitHub and its relationship to collaboration with Salesforce.
  • Describe the benefits of CumulusCI.
  • Explain the role of CumulusCI in open source app development.

Building a Better Food Bank—Introducing CumulusCI

Tasha wants to share with Maddie some of the Salesforce implementation work that Compa has already done, but she isn’t entirely sure how to do it. Thankfully, Tasha’s friend Isabel is a consultant with Advocate Partners, and recently told her about something called CumulusCI. Tasha invites Isabel out for ice cream so that Isabel can help explain.

Isabel has joined Tasha and Maddie at Nardo’s.

Isabel explains that Salesforce.org uses a toolset for collaboration called CumulusCI. CumulusCI stands for Cumulus (as in the cloud) Continuous Integration—and is so named for how Salesforce.org builds and delivers its managed packages continuously. CumulusCI can be used by employees, partners, as well as community collaborators, and allows anyone who’s working on a Salesforce-related project to create a Salesforce sundae recipe. 

Anyone can then use that recipe to create a new Salesforce org that looks exactly like the recipe it’s based on. In essence, CumulusCI would allow Tasha to copy the Compa sundae so that she, Isabel, and Maddie—as well as any other food bank admins or workers who might want to participate—can use it. What’s more, CumulusCI allows you to create a separate space in which to brainstorm and experiment with new flavors and toppings, so that the original sundae stays intact.

Isabel points at a chart, walking Tasha and Maddie through the steps they’ll be following in their Cumulus CI journey.

That sounds like a lot, but Isabel assures them that CumulusCI is really about a few key concepts:

  • Sharing—CumulusCI is available as open source software, which means it’s available to everyone, everywhere. It also comes configured with a number of processes and workflows designed to help projects get started quickly and easily.
  • Configurability and customization—CumulusCI is built to adapt to the needs of any project, making it easy to add new automation, load data, configure metadata, and manage dependencies.
  • Portable automation—CumulusCI helps you to create reusable recipes for all of your project’s automation needs, like building and configuring orgs the same way every time. Since CumulusCI automation is defined and stored within a project, it stays with your work and applies in any context, whether it’s your computer or the cloud.

The Role of GitHub in Version Control

Now, Isabel explains that they’ll use GitHub, an industry-standard version control tool, to host the actual code and customizations in one central place. In other words, GitHub will store the sundae recipe. From there they’ll be able to track changes, incorporate contributions from every community member participating, and ensure that nobody accidentally erases someone else’s work. GitHub automatically keeps track of all your revisions, and makes it very difficult to goof everything up when it’s configured properly.

Bringing the Tools Together

CumulusCI and GitHub, are at the heart of running a successful Salesforce open source development project. GitHub is where the sundae assembly instructions are stored and CumulusCI is the factory that assembles the sundaes. In this model, your Salesforce org is no longer the source of truth for customizations; rather, the GitHub repository is now the cornerstone of your project. The GitHub repository is where you will find the customizations to pull into your org, whether to use, develop, or test. Using GitHub to track your customizations comes with lots of extra capabilities: you can use version control to record changes as they happen, review with colleagues, and collaborate with team members. Plus, storing customizations centrally in GitHub makes it possible to harness CumulusCI to automate a custom Salesforce org installation and configuration.

What’s Next?

Now, the slow and steady work of development begins. Tasha and Isabel have identified a great opportunity to help their industry and other organizations like Hunger Northeast. Best of all for Maddie, this project won’t require much of Maddie’s precious time. Her domain expertise and organizational insight will be invaluable as a contributor, while Tasha and Isabel bring their experience with Salesforce to the project.

By engaging in a community project, Maddie will find solutions to organizational challenges at Hunger Northeast that she may never have found alone, and most likely a new group of friends as well!

Tasha, Maddie, and Isabel sit at the picnic table with their laptops out and paper all around them, they are in the beginning stages of mapping out their Food Bank App project.

Follow along with Isabel, Tasha, and Maddie as they walk through steps of using CumulusCI to develop a Food Bank app including: 

  • Setting up CumulusCI
  • Capturing customizations
  • Telling the app’s story using demonstration data
  • Converting their project to a managed package
  • Helping users further customize the app to meet their needs

Resources

Share your Trailhead feedback over on Salesforce Help.

We'd love to hear about your experience with Trailhead - you can now access the new feedback form anytime from the Salesforce Help site.

Learn More Continue to Share Feedback