salesforce dx and blue canvas


At Dreamforce ‘16, Salesforce made an exciting announcement: they are investing heavily in a strategic overhaul of the Force.com developer experience around deployments and Continuous Integration. Since this is the same neighborhood that Blue Canvas likes to hang in, people have been asking: “How does Blue Canvas relate to Salesforce DX?” It’s a great question. Here is our take.

Salesforce DX

Salesforce DX offers an upgraded set of tools for handling deployments on the Salesforce platform. It is welcome acknowledgement from Salesforce that the developer experience around deployments needs work. Force.com is an amazing platform, but there are of course some legitimate issues with the software development life cycle for Salesforce.

Salesforce DX promises needed improvement to the APIs and tooling that empower developers, IDE vendors, and command-line utilities to achieve Continuous Integration for Salesforce. In its current form, we see it as a major improvement on the Ant Migration Tool plus the introduction of the concept of Scratch Orgs - a new concept for spinning up Salesforce Orgs in just a few seconds.

All of this is geared towards enabling Salesforce developers to adopt the best practices that Salesforce’s leading Independent Software Vendors (ISVs) are practicing today.

Blue Canvas is to DX as GitHub is to Git

Git is an amazing open source tool that helps software teams collaborate in a distributed way. There are so many benefits to using Git. But Git didn’t really take off until GitHub built a hosted service that made Git more easily available to people. A hosted version of Git meant that teams no longer had to set up and maintain Git on servers or worry about maintenance and downtime. With GitHub, Git just worked. This facilitated a revolution in how teams collaborate to build software.

From what we have seen, DX is going to be a lot like Git: a very powerful set of tools that can be leveraged to do great things. Still, we think there needs to be a layer on top of DX which makes it easy to use and maintain.

DX is largely an update to tooling that can be leveraged to build your own CI or CD process. Conversely, Blue Canvas is a managed service that brings native source control to the Salesforce platform in a way that enables CI. Blue Canvas makes it easier to achieve the vision behind DX without having to roll your own solution or change your processes.

DX encourages source-driven development, but it keeps source control external to the platform. In the DX demos at Dreamforce the team showed how you can push code between your local computer and GitHub, just as you do today with Ant+GitHub or Eclipse+GitHub. It looked faster, and simplified, but it’s the same model. You’ll still have to write and maintain deployment scripts and setup and configure your own CI server.

Blue Canvas will use the tooling provided by DX to run and maintain a deployment system that leaves you free to do what you do best: write great software. You won’t have to maintain anything with Blue Canvas.

Declarative Changes and DX

How do admins and declarative changes fit into DX?

Just like Ant+GitHub, DX in its current form will only work well if every developer and every admin on the team use source control without exception. A single “quick fix” in production from an admin and your source code is out of sync with your Org.

Blue Canvas sees this as an unsustainable model for software development and we offer a different approach: all commands, scripts and logic run server-side on our managed service. Once you connect your Org, you have real, native Git source control for all your Orgs and metadata. Admin and UI changes are tracked automatically in Git without anybody having to run a sync command on their local machine.

If an Admin changes a PermissionSet or Workflow through the UI, it’s automatically committed to Git with Blue Canvas. With Blue Canvas, Admins don’t need to use Git perfectly, or remember to commit every time they make a change. It works with Developer Edition, Sandboxes, and Production Orgs (once DX goes live, it will work with Scratch Orgs too). Because you deploy by merging a branch, it is not possible to accidentally overwrite the work of others. DX does not keep track of the content on your Orgs and it does not do this kind of bi-directional syncing.

Blue Canvas Requires No New Processes

Blue Canvas works with existing workflows. Salesforce DX requires some changes to how you do development in a few key ways. First, DX supports a different directory structure. This means you’ll have to make some changes to your Orgs.

Salesforce DX will also include new packaging format (also known as “artifacts”). Different from the current src/ and package.xml system, DX needs a variety of JSON files in configs/ and code has moved to force-app/packagename/.

Blue Canvas is something that just seamlessly works with your existing setup. It gets out of the way and lets developers and admins do what they do best: build awesome experiences for their users.

More Awesome Innovation from Salesforce

As with Lightning, it’s great to see Salesforce move forward with groundbreaking technologies. At Blue Canvas we share Salesforce DX’s vision and hope to help make it a reality for as many teams as possible.

Ultimately, Blue Canvas is just a way to leverage DX in the simplest way possible. You don’t need to change anything about your workflow. We use DX on the backend and everything just works.

As we mentioned on our blog, we are excited about DX. Blue Canvas will leverage a lot of the tools that DX makes available. In fact, we see Blue Canvas as implementation of what DX can be at its best, except that it’s backwards compatible to your current workflow and in private beta today.

Salesforce has a long and great history of supporting third party tools. We are excited to continue working with Salesforce to help improve the Salesforce developer experience.