We’ve covered some of the issues that Salesforce developers face in previous blog posts. But far be it from us to complain without proposing a solution.

A few weeks ago, we covered why we think that Git is the ideal solution for Salesforce development. In this blog post, we are going to show how Blue Canvas implements Git to speed up Salesforce development and make collaborative development easier.

What is Blue Canvas?

Blue Canvas allows you to use Git to push and deploy code to your Salesforce Orgs.

We’ve implemented Git so that it connects directly to your Salesforce Orgs. The systems are linked securely via certificate-based OAuth 2.0. Once the connection is made, Blue Canvas creates a private Git repository for you that will stay in sync with the metadata on your Salesforce Orgs.

Each Org (whether it’s UAT, production, developer sandbox, etc.) gets it’s own branch in Git. Deploying to an Org is as simple as pushing changes to that branch. Blue Canvas handles compiling, validation and deploying to your Salesforce Org in a matter of seconds. It handles addition of new components, as well as deletion of components with destructiveChanges.xml. You no longer need to worry about Change Sets or Ant scripts to do your deployments.

Because everything is Git based, Blue Canvas is also a source of truth for what has happened on your Org. You now have a full Git history of every change, who made the change, when and what changed.

Improved Collaboration

Blue Canvas solves the biggest challenge Salesforce developers face: it implements source control directly on the Salesforce Org. This means it is no longer possible to accidentally overwrite code from one of your teammates and be left without recourse. With Blue Canvas you can visualize changes that have been made and our service will actively block you from deploying unmergeable changes.

Changes are tracked on separate branches, and you can use the full power of Git in order to handle merge conflicts before deploying.

Declarative changes are also now tracked in Git. This is useful for developers because it means that they can be confident that they are working on a stable version of the codebase at all times. Previously, if a developer or administrator made a change through the Salesforce Web UI, that admin or developer had to manually inform everyone on their team of the change, and other developers had to refresh their local copy. With Blue Canvas, changes made via the Web UI are always automatically tracked in Git. A developer merely needs to run a git pull command in order to grab the latest version of code on their Salesforce Org.

One of the biggest complaints we hear from Salesforce developers: there is no good way to deploy changes that happen to workflow rules, fields, and profiles.

Ability to Rollback

With Blue Canvas, changes are no longer destructive. You are not simply overwriting the last version of your codebase with a new one. You now have a detailed, line-by-line, versioned codebase and changes are tracked over time. If you don’t like a change that you made, you can always roll back to a previous commit using git reset or git revert. This gives developers peace of mind as they make changes. It also frees developers to move faster because they have more confidence in their work.

CI with Faster Deploys

DevOps and CI have become best practices for software developers in all industries. But deploying quickly is especially important for Salesforce developers. Businesses are constantly responding to what they are learning from their customers. This drives frequent changes to their Salesforce instances that they want implemented immediately.

With Blue Canvas you can deploy to a Salesforce Org in a matter of seconds. No more waiting for Ant scripts to retrieve code and then deploy. Just run git pull and git push and watch the immediate deployment of with your changes.

$ git push salesforce master
Counting objects: 6, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 486 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Starting deployment to 'na30.salesforce.com'.
remote: Updating branch 'master'.
remote: Preparing deployment for commit id '369a79c929'.
remote: Preparing files for deployment.
remote: Deployment successful.
To https://git.bluecanvas.io/o/00D90060000aaPg.git
* [new branch]      master -> master

Deploying between Salesforce Orgs is easier than it ever has been. Since each Org is represented with a branch in Git, deploying is as simple as merging branches. This makes moving from a developer sandbox to UAT and on to production extremely fast and simple. With Change Sets, it can be difficult and time-consuming to deploy between environments. With Blue Canvas, you can be sure that you are sending exactly the package of code that you want to in a number of seconds by just running a merge or a pull request.

Tracking Object Level Changes

What about object level changes like workflow rules, fields and permissions? Blue Canvas tracks these changes as well. This is one of the biggest complaints we hear from Salesforce developers: there is no good way to deploy changes that happen to workflow rules, fields, and profiles. Blue Canvas automatically track this information in Git. So you simply need to run git pull in order to get these changes onto your local instance.

Empowering Developers

The goal of Blue Canvas is to empower Salesforce developers to do their best work. This is best done by using open tooling (like Git) and established Git workflows and then getting out of the way. Developers around the world are coming to love the “push-to-deploy” methodology. Blue Canvas brings that to the Salesforce developer community.