Git repository for designers as you’ve never seen: Abstract (+ Sketch)

We all must have version control repositories

Matteo Gratton
Prototypr
Published in
10 min readFeb 6, 2017

--

Working with version control software (aka Git in many cases) is nowadays a must in software development. It is reassuring as a software developer or a web developer to know that all your code and the evolution of a piece of code will be fully traceable. This means you are probably familiar with commands like git push, git pull, git fetch, git clone, git commit -m and so on. [see the end of this article for other info and useful links about version controlled repositories softwares]

But if you are a designer (UI, UX but also Visual, Illustrator, Font designer), you may not be familiar with version control practices and this kind of commands (even if you can use Dropbox, Folio or other software to achieve a similar goal). It’s likely that version control key principles are already embedded in your workflow, without you even realising it.

Just saving your files into the right folder (your project) with the right name (and probably a progressive number o suffix) you are already following the advantages Git offers in the world of coders (actually it works well not only for code, but for any kind of text).

Is GIT so far from Designers?

At the moment many companies and designers are using Git or similar software to manage their project files. But we all are in trouble because we cannot manage the differences between many versions of the same file. We also cannot actually merge them because graphic design tools usually relies either on binary files (i.e. raster files - so hard to track effectively with Git - or in general proprietary file formats which do not allow for a direct comparison between two versions of a project).

Abstract is the sine qua non for designers

My team is currently using Git to manage all the graphic files (both Sketch files and Adobe suite files), but only one of us can currently work on one individual file. I’ve been looking around for several months to find a solution to our troubles.

I found plenty of potential solutions on the web and, since last August, I have been personally following the best practices presented by Geoffroy Delobel in his useful article A successful Sketch collaborative model (I know, there is a Sketch Git plugin by Mathieu Dutour, but it is not yet fully developed, despite the hard work already undertaken :) [see the end of this article for other useful links].

Welcome Abstract

All of the above issues and grief have probably been resolved last Friday (or at least I hope so) when I received an invite as early alpha tester for Abstract app. As a Sketch user, a Designer with a past as Coder and a Team Leader I couldn’t resist trying it. Abstract has surprised me more than I could imagine!

But first thing first. What is Abstract and how does it work? Finally, who is it designed for?

Abstract is a Mac only app (first restriction, but comprehensible because the next point) designed to be a version control system tool for Sketch (second and more important restriction: it’s not designed for other softwares — Adobe Photoshop or Adobe Illustrator, Affinity Designer etc.).

The app is very clean and simple (it’s hiding all the command line instructions required by Git), presenting all your projects (divided between personal projects and team projects) with all their files, in a clean and simple way. For each file you’d have a Master and as many branches (i.e. concurrent versions) as you require [For an explanation of what Git is and how it works, please follow this guide provided by the official Git website].

This magic, previously reserved only to developers, means that you can now work on the same file as many time as you need, with as many contributors as you need simply because you have branches. You can manage the status of any branch, comment on it, open the file and edit it (adding further branches, if required) and finally merge it.

Abstract will help you to present changes throughout the timeline of the project in a clear and useful way: you can see any Artboard and any Symbol you modified through the history of all your commits.

You can also navigate through all the changes (and open old committed files too, like in any other versioning software).

Abstract is not exactly Git

The alpha software I’m currently evaluating is not exactly Git (or, better, a FrontEnd for Git), although it is very similar.

Like in Git (even if at first glance it seems not) everything is locally stored and then pushed up to the cloud: Abstract has offline support for branching, editing files, committing, and merging.

Other differences are that at the moment you haven’t the opportunity to work through a command line (I assume many users wouldn’t necessarily see it as a bad point). Thus you can use only the commands that are provided through the FrontEnd of the App (commands like cherry pick and other advanced features are at the moment not available, but the Team is working to improve many of them in an efficient way for us designers).

Anyway, by hiding the complexity of Git the Abstract team make the app simple and designer friendly.

Abstract is the tool for me and my team

From my perspective, what we have in this alpha of Abstract is enough to say this must be part of the team workflow starting from now because:

  • We can work together on the same file.
  • We can review the differences and decide which one is the right one.
  • We can merge many branches in a Master file (so that we save many time instead managing by hands new Artboards, Symbols and Styles).
  • We can collaborate through the team with comments and suggestions during the team work.
  • We have a version history so that we can move through the timeline, opening, editing and reviewing the design more and more time.
  • We have a clean, stable and updated Master file.
  • We know the status of the work for the several tickets we are working on.

Abstract is what we missed in our workflow. We are using the Atlassian integrated system: Jira with Bitbucket (Git) and Bamboo (build system), where from a developer perspective everything is perfectly integrated.

Until today the design team was quite a unique isle in the middle of the ocean. We have had only a base versioning control (we have our graphical repository on Bitbucket), but because it was not possible to use branches in an effective way (although it is technically possible to have them, it is not really useful for us because they can’t be merged and all the integration work needs to be done manually) the design team is currently unable to link the ticketing system with version control and therefore unable to have full tractability of the evolution of a design.

Abstract seems to be the solution

Abstract would be the solution for our problems. We still missed some integration, we are still waiting for the next steps. But the software as it is in this alpha release seems to be going in the right direction and what I have in my hands now is something definitely usable, simple and absolutely better than all the other option I have.

Conclusions

I definitely suggest to all Sketch users to use Abstract (and all the UI Designers that are not using that tool to think carefully about the option to switch here).

Pros

  1. Abstract works fine as it is. Start to use it and it will work in few seconds!
  2. Everything is automatically saved on the cloud
  3. A simple plugin in Sketch permit to commit changes in a quick and easy way
  4. You can create branches and manage the status of the work
  5. You can merge branches by choosing the correct version if there are any conflict
  6. You can collaborate actively with the rest of the team (and all the user that have access to your repository)
  7. You can send (currently only) Artboards url’s to your teammate or colleagues and they can look at your work and comment it
  8. You can follow all the history of a project

Cons

  1. Large file saving is a bit slow (because the App needs to translate the entire file every time there is a save) [the team is working actively to improve this]
  2. At the moment you can not use Abstract with other version controlled softwares (i.e. Github and Bitbucket) than the proprietary one. [Thus because the App does a number of unique things for Sketch files, that are quite different from a text file]
  3. Some Git commands are currently not available

Next steps, I hope, it will include other Git commands (perhaps directly in a command line for advanced users) and the option to connect the App with other servers (because company policies we can’t store files in other servers than our without any authorisation).

Finally, I’d love the idea to connect Abstract directly with boards like Jira or Trello to manage all the projects (and the tickets) in one common place with the developers.

Extras

Version control repository guides

Some great and useful softwares for designers

Some great articles for designers

by Geoffroy Delobel

by Daniel Fosco

by Folio for Mac

by Mathieu Dutour

by Atlassian

by Harrison Weber

by Slavo Glinsky

by Khoi Vinh

I want to thank you for reading! I hope it helps you, and I’m pretty sure you now can’t wait for Abstract like me. I’m eager to know your thoughts, best practices, solutions. Soooo, feel welcome to comment and don’t forget to hit me also up on LinkedIn!

Update 28th February 2017: Josh Brewer just answer some questions at the subtraction.com blog. It’s interesting and I strongly recommend to read this interview :)

Update 26th April 2017: Add Zeroheight and Picnic as new Sketch plugin in the resource list

Update 12th July 2017: Abstract is finally on a public beta (from the 11th of July)

If you liked this, click the 💚 below so other people will see this here on Medium.

Join us for more on Sketch and other prototyping tools

--

--

Agnostic designer, former musicologist, intimately historian. VP Principal Designer @Barclays - Former Sketch, and Midas Consoles.