Using Git for designing

Meeusontwerpt is a graphic design studio consisting of sisters Janne and Hilde Meeus. During the Hybrid Publishing Toolkit project, they were involved in the Context Without Walls subproject. I met up with them recently to get some designer’s feedback on our hybrid publishing tool the Sausage Machine. Just a quick reminder of where they left off after the Context Without Walls project:

Upon completing the book, Janne and Hilde asked the question, “What can the role of the designer be in the digital publishing process, if it is not only to make an EPUB that is free from errors?” They now see the potential for experimentation and feel that there are indeed a lot of possibilities but they are at present not evident and will only be exposed through further experimentation.

(From a blog post by Becky Cachia (November 2014))

The Sausage Machine being a tool for a technical process, it is good to remember that overcoming the difference in technical skills between collaborators on book projects through this tool, does leave a lot of design focused experimentation to be done in the field of epub development. How can margins be used in an unorthodox way? Can typography break the mould of  typefaces? How can graphic novels exist in a reflowable format? However, this blog post is not about those kind of questions…

While I have had time to experiment with the tool and I know what Gottfried Haider’s aims were in creating the tool, Janne and Hilde had only read about it on our website. Going through it with them proved very insightful. Prior to meeting with them I supplied them with a text document and an image and asked them to try to make an epub using our tool. Here are some of the issues raised in the conversation I had with them afterwards.

(This is post 1 of 2, this one being about the use of Git(Hub), the next one about interface design. I will talk to 1 or 2 other designers in the future as well and report back on this blog after speaking with them)

Relying on Git(Hub)

Git and GitHub are amazing tools, especially for collaborating on code or other text-based documents. At the PublishingLab we rely on these techniques for most of the projects we do. In fact, we teach Git and GitHub to each new group of interns that arrives in our lab. While I only learnt about these tools about a year ago, the ‘pull > add > commit > push’ mantra won’t escape my head anytime soon.

That is not to say that it was easy for me to get into using Git. I remember well that in the years before I finally learnt how to use it, there were many times that I tried to learn it and just gave up: I didn’t understand exactly what it was for and without anyone guiding me through it, the terminology surrounding Git was quite opaque. It was only when someone actually sat down with me that I finally understood how, why and when I could use it. This also coincided with my growing interest in and personal use for markup and programming languages (hold it there: I’m just dabbling).


So, what has this got to do with designers and the Sausage Machine? Well, to use the Sausage Machine you need to be logged into GitHub:

Screen Shot 2016-06-02 at 14.43.54

If one of the aims of the Sausage Machine is to make hybrid publishing more accessible to a wide group of people it becomes more likely that those people are not familiar with GitHub. Having to sign into a system that is, at least in my experience, not very first-time-user-friendly is a challenge that has to be dealt with. Meeusontwerpt and other designers I have spoken to in the past reminded me of the fact that Git is generally speaking not a designer’s tool. As we’re trying to build bridges between different skill sets, this is a central issue with the Sausage Machine.

While intimidating and hard to grasp a priori, I do think that Git isn’t that hard to learn. See for example this entertaining tutorial:

Or read this tutorial post on the benefits of using Git for designers on Medium. Although it is written by a developer rather than a designer and it talks mainly about text-based work in css, it is a nice starting point. One of the MANY in fact.

Should there be a Git tutorial included with the Sausage Machine? Could GitHub be optional or automated?

Version controlling visuals

The design work involved in making an epub is mostly done in css, and thus understandable by Git: changes in the design can be attributed to a single line of code. Design for print however, is mostly done in pixels or vector graphics (basically mathematical formulas translated to visuals: the line from point a to point b can be reproduced in any size using formula x). (Another interesting blogpost can be found here)

Ultimately of course, these pixels and vector graphics are stored in a text file, however this file is not human-readable any longer. This type of design work is done through applications like Illustrator, InDesign or open source alternatives like Scribus.

Although you could theoretically use Git while working on documents like these, problems arrise when there are conflicts between versions. There is no easy way to see what a previous version looked like (you would have to revert or fork going on commit messages) or what exactly is the difference between two versions, because the text file is not readable.

While at Libre Graphics Meeting last April, I learnt about some developments in the field of version controling visuals. Belgian developer / designer Julien Deswaef is working on a tool for exactly this problem of comparing

in a comprehensible way the different versions of [a] visual project, and specially the ones done in SVG [the format of vector graphics]. Considering that todays graphic designers use more and more vector formats for their work and considering that the also embrace more and more the version control systems such as Git, it is necessary to come up with visual tools that augment, facilitate and encourage interactions between designers.


While it’s still in development, I think it’s very promising that someone is working on this topic. I think design and development will only become more intertwined and good tools need to be available to facilitate collaboration and version control. Julien Deswaef’s project is of course available on GitHub. Open Source Publishing is working on a similar project called Visual Culture.


Version control is an integral part of collaborative epub development, and using Git or a similar system is the most logical way of facilitating this. The Sausage Machine should take advantage of these technologies, but at the same time stay true to its aim of making hybrid publishing accessible to people with different skill sets. In developing the tool further, we need to find out how to overcome this discrepancy, for instance by guiding people through the bare necessities of Git.

Tags: , , ,