[LIVE STREAM] How to develop design in Penpot with Eva

Last month, @Eva_Marco went on live to explain how a frontender works with Penpot. Eva showed us an example of what she does on a daily basis: developing Penpot designs on Clojure. Watch the video! How to develop design in Penpot - YouTube

How do you find Penpot as a frontender? Does it work for you? Did you watch Eva’s video and learned something new you didn’t know?


The stream shows a small part of what my day-to-day life is like while I work developing penpot. My main goal is to encourage other developers to participate in the project with small code contributions.
At first, Clojure seems too difficult and if we get into “the guts” it can become very complex, but there are parts that are much more accessible.
The menus, the interface, or create a button is something within anyone’s reach and that’s what my stream is all about.
So if you feel like collaborating with some code, this video can be the first step to doing it.

What would you like to talk about in our next video?


At the moment I am less worried about clojure but about interacting with the dev environment. It feels very powerful and streamlined but somehwat overwhelming for me (the different tmux-es, servers etc.)

I would be interested in a video where you sets up a fresh dev environment until the point at which one could do what you show in your video!


Was first exciting about seeing programming something in Pen, but less so seeing that everything is built with Clojure. I probably won’t take the time to learn another programming language, and wondering why JS can’t be used. So close. I feel like Clojure will be a hard sell for most people.

I guess this came down to what the people at Kaleidos were more familiar with. And least for frontend changes, the lisp/clojure syntax works well with the transpiled react components.

But don’t you think it’s an uphill battle for adoption? You don’t only have the challenge of getting people to learn the API and dev side of Pen Pot, you also have to make them want to learn a less popular programming language.

As far as I know, most contributions to most Open Source projects are made by a few “core” people (Who in the case of penpot work for Kaleidos) Would it be great to have a more popular language, all other things being equal? Yes! Would a lot more developers make relevant code contributions penpot then? Probably not.

Where Clojure would be more problematic would be if penpot would introduce a way to create user contributed extensions and if that extensions would could only be in Clojure.
While main projects usually need a lot of onboarding work of which knowing the programming language is just a part, extension developers should be able to create results rather quickly and with small-ish amounts of code. Here, JavaScript would make a lot of sense.

If you want to know why we chose Clojure in the first place you can read this article. I know it’s not so popular, and also a bit hard to learn, but if you want to contribute there are some ways.
We have created the skeleton of the Figma importer in JS and opened it to the community. We would be happy to receive any help there.

1 Like

I understand what you saying @jdittrich , and in a smaller, less complex this can be very determinant. But in project like penpot, the language is the least of the problems for contributions. The complexity of the project and complexity of the domain makes the difference here.

On the other hand clojure, is a pretty small and very stable language, learning it is pretty easy as long as you’re not afraid a few parentheses :smile:


I understand what you saying @jdittrich , and in a smaller, less complex this can be very determinant. But in project like penpot, the language is the least of the problems for contributions.

This was what I wrote above – I think clojure was a sensible choice for creating Penpot.
However, I have trouble getting my development environment set up

and would be

1 Like

Agree, we clearly need to focus on a better and easy steps for setup a development environment. The current approach works good for us, but this not means is easy and familiar for outside of our team. We take a note on this.


better and easy steps for setup a development environment.

That would be great! I gladly can tell more about my experience so far if there is interest.

Oh, and since the discussion here was not yet on the video’s content itself: such worked-example videos are an excellent way to teach!