# Using version-control to collaboratively work on Penpot

**URL:** <https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633>\
**Category:** Help us improve Penpot\
**Created:** [September 8, 2022, 2:57pm UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633 "2022-09-08T14:57:27Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![val](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/val/32/553_2.png) [@val](https://community.penpot.app/u/val)\
**Post date:** [September 8, 2022, 2:57pm UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/1 "2022-09-08T14:57:28Z")

</div>

Hello Penpotters ☺

The use of SVG as a format for Penpot files opens the door to a topic that is very close to my heart. Developers and designers often work together, and this close collaboration gives us the invaluable opportunity to get to know (and borrow!) each other’s tools.

It was love at first sight for Git, and there are at least two things that as a designer I find extremely useful and would like to have in my Penpot:

- Having access to the history of a graphic document (and of the single components). This has already been partially implemented with the History panel. Is there a plan of further development for this feature?

- Working with a “framework” similar to that we use for development. I am referring in particular to pull/merge requests, the creation of different branches and the test and review system while keeping somehow a trace of the contributions.

I don’t know how many times I have needed to show the many iterations that led to the development of a certain version, or to compare and test many different versions of the same board. One always has to find intricate solutions to do this, and usually the result is not immediately understandable to those who wish to collaborate.

Ok, let’s dream for a second: I would also love to have all this synced on the git repository together with code and documentation of a project. I am aware that the way Git works (line-based diffs) makes this idea a bit cumbersome, but maybe there is already some project in this regard or someone has a strong opinion on this point. There may be version-control systems more fit to work with XML than GIT. That is an area where development might be needed. I would like to know what you think.

---

<div class="post-metadata">

**Author:** ![hirunatan](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/hirunatan/32/38_2.png) [@hirunatan](https://community.penpot.app/u/hirunatan)\
**Post date:** [September 9, 2022, 10:18am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/2 "2022-09-09T10:18:29Z")

</div>

HI @val . I must confess that, since we decided to use svg format, we were as excited as you with the possibility of doing some kind of git-style version control.

Of course, this has huge implications and complexities, so it’s quite a long term wish. But it can be phased. For now, we have a story about implementing file version history, that you can follow:

> **[Taiga](https://tree.taiga.io/project/penpot/us/187?milestone=262806)**
>
> Taiga is a project management platform for startups and agile developers & designers who want a simple, beautiful tool that makes work truly enjoyable.

---

<div class="post-metadata">

**Author:** ![alexzeitler](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/alexzeitler/32/591_2.png) [@alexzeitler](https://community.penpot.app/u/alexzeitler)\
**Post date:** [September 9, 2022, 11:21am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/3 "2022-09-09T11:21:29Z")

</div>

GitHub has support for SVG diff:

> **[SVG Viewing & Diffing | The GitHub Blog](https://github.blog/2014-10-06-svg-viewing-diffing/)**
>
> In the spirit of making diffs of rich information easier to parse, SVG images are now viewable and diffable on GitHub! As always, you can find more details in our help documentation.

There’s a discussion with a list of tools for SVG diff here:

> **[Existing tools/attempts for diffing SVG](https://discourse.opensourcedesign.net/t/existing-tools-attempts-for-diffing-svg/763)**
>
> As mentioned in the Summit Agenda outline, I somewhat cruelly proposed that we continue the eternal painful search for a way to effectively diff SVG and integrate it into our workflows. Here’s a jumble of projects and approaches, please add more...

---

<div class="post-metadata">

**Author:** ![hirunatan](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/hirunatan/32/38_2.png) [@hirunatan](https://community.penpot.app/u/hirunatan)\
**Post date:** [September 12, 2022, 9:43am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/4 "2022-09-12T09:43:24Z")

</div>

Thanks! We can take interesting ideas from those tools. I’ve added this to the user story in Taiga.

It’s true: you can always export manually your penpot files to svg and store it in a git repo. This way you have a version control, but unlinked with Penpot.

The issue would be to do some kind of automatic link, but this is what requires a lot of thinking and design.

---

<div class="post-metadata">

**Author:** ![alexzeitler](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/alexzeitler/32/591_2.png) [@alexzeitler](https://community.penpot.app/u/alexzeitler)\
**Post date:** [September 12, 2022, 9:52am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/5 "2022-09-12T09:52:50Z")

</div>

What if I could give penpot access to a GitHub repo and it can commit the changes to it instead (or in addition to) of storing it to a file on the penpot server? Or you can mark “snapshots” which will be “milestones” you want to keep in your git(hub) history. Of course that will still take a lot of effort to be handled in detail.

---

<div class="post-metadata">

**Author:** ![hirunatan](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/hirunatan/32/38_2.png) [@hirunatan](https://community.penpot.app/u/hirunatan)\
**Post date:** [September 12, 2022, 10:13am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/6 "2022-09-12T10:13:53Z")

</div>

Yes, those are the kind of ideas that have been boiling inside our heads for a long time. But there are many derivatives, alternate ways and side-effects that must be considered. Keep watching, and thanks again for your suggestions.

---

<div class="post-metadata">

**Author:** ![candidexmedia](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/candidexmedia/32/9178_2.png) [@candidexmedia](https://community.penpot.app/u/candidexmedia)\
**Post date:** [September 15, 2022, 4:00pm UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/7 "2022-09-15T16:00:43Z")

</div>

If I’m not mistaken: isn’t this how [draw.io](http://draw.io) works when connected to GitHub?

---

<div class="post-metadata">

**Author:** ![val](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/val/32/553_2.png) [@val](https://community.penpot.app/u/val)\
**Post date:** [September 16, 2022, 11:54am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/8 "2022-09-16T11:54:50Z")

</div>

Thank you for sharing @alexzeitler! The discussion on OSD really offers many insights, in particular I find [GSVG - Git-friendly SVG](https://github.com/noahbrenner/gsvg) very clean and interesting.

---

<div class="post-metadata">

**Author:** ![alexzeitler](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/alexzeitler/32/591_2.png) [@alexzeitler](https://community.penpot.app/u/alexzeitler)\
**Post date:** [September 16, 2022, 12:47pm UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/9 "2022-09-16T12:47:57Z")

</div>

@val I’m looking forward to my first penpot SVG Diff in GitHub or penpot 😉

---

<div class="post-metadata">

**Author:** ![markuseicher](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/markuseicher/32/3573_2.png) [@markuseicher](https://community.penpot.app/u/markuseicher)\
**Post date:** [September 12, 2023, 7:12am UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/10 "2023-09-12T07:12:37Z")

</div>

A very interesting topic. Thank you all for the discussion. I really think with SVG’s, the options for having them under version control are in the making and partially already useful. But I found the mention of draw(dot)io pretty interesting. It would just be great, if we were able to have our whole Penpot projects under version control. A very demanding idea, I know, but I’m looking forward to the developments in this sector and I wish you all much fun and success with your projects.

---

<div class="post-metadata">

**Author:** ![BDV](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/bdv/32/8012_2.png) [@BDV](https://community.penpot.app/u/BDV)\
**Post date:** [November 26, 2024, 7:42pm UTC](https://community.penpot.app/t/using-version-control-to-collaboratively-work-on-penpot/633/11 "2024-11-26T19:42:27Z")

</div>

Great idea, I sended in a feature request for this see [feature: Use Git/GitHub principal for teams](https://github.com/penpot/penpot/issues/5361)
