How to create a version controlled Sketch Library for your distributed team using Github


You have a pattern library, a design system, or library of symbols in Sketch. You have a team across multiple locations with multiple design files, how do you keep those designs consistent, particularly with an ever evolving library of atomic patterns?

Your options:

  1. Stick the Sketch file on Dropbox as a single master template that everyone can use and refer to. The downside of doing this is that when it updates, none of the symbols in all of the Sketch files you’ve previously created will be updated.
  2. Use InVision’s Craft plugin, host your single master template on Dropbox. The problem with this is that this is not version controlled.
  3. Use Abstract — a great tool that will solve this problem but can be costly.


Use Github, it’s free, it’s version controlled and works with integrations like Slack so you can keep your team notified of changes.

How to use Github with Sketch.

For the example below I’ll be using IBM’s Carbon design system Sketch file.

The setup:

  1. Your team will need to download Github Desktop, install it, and create a free Github account if you don’t have one.
  2. Open Github Desktop and add your repo.
  3. Save your Sketch master library of symbols to to your local Github repo location.
  4. Commit your master (Don’t forget to give it a summary)
  5. Push.
Sketch file sitting in your repo ready to commit and push

Thats it! You now have a version controlled Sketch library on Github. Now for the magic.

Adding the library to Sketch

Your team will now need to open Sketch and add the design system as a library:

You can either do this in Sketch by:

Going to Sketch > Preferences > Library > Add Library and selecting carbon-design-kit-8.0.0.sketch (or your-library.sketch) from your local repo location.

Or open carbon-design-kit-8.0.0.sketch (or your-library.sketch) from your local repo location, then in Sketch go to File > Add as library…

Now the design system is linked and

Now to see it in action:

Make any global changes to your master (left), commit and push them.

You’ll need to fetch an update of the master library. You can do this by fetching it in Github Desktop (below)

You can fetch an update of the master Sketch library at anytime, before or after you have opened your local Sketch design file.

Once the fetch is complete you’ll notice in the top right corner of the local Sketch design file screen a prompt “Library Update Available”, click it and the following dialogue box (below) will tell you that the library symbol has been changed in your library, click “Update Symbols”.

In this example the colour of the button has changed from red to blue from the master library and wants to update you local design file.

Thats it. You and your team now have a centralised Sketch library that is version controlled and that can be updated and distributed across the team.

Credits & links

  1. Diverse people image
  2. IBM Carbon Design System
  3. Github desktop