Contributing

Zetkin is a big collaboration. This guide is for your very first hour of learning about it. Welcome!

This is a big document.

Background: What’s Zetkin?

If you are a programmer, user interface designer, user experience designer, or have some other technical competence, you are welcome to contribute to the Zetkin project which would benefit all attached organizations.

Do you want to start contributing right now?

Frontend development in CSS, HTML and JavaScript (React)? You can start right away, on our Open Source projects, using GitHub Issues and Pull Requests to interact with the Zetkin maintainers.

Backend development in Python or Node.js? We do this, but you need to get in touch with the Zetkin maintainers to start doing that.

Get a code collaboration account at GitHub

Zetkin projects use GitHub Pull Requests for collaboration. You will need a personal GitHub account.

Connecting to GitHub with SSH explains how to create and add an SSH key to your account.

Get a Slack account

Ask your Zetkin maintainer for an invite to the Zetkin Slack channels, where you can get help from other people.

Install dependencies

To develop Zetkin, you need to get a development environment started. There are instructions about this in different project READMEs.

All of them use Docker, so you will need to install Docker Desktop for your computer platform.

If you are using Windows a few more steps might be necessary. See the separate contributor’s guide for Windows users.

Clone a project

Zetkin has three large projects you can access on the Zetkin GitHub Organization right now:

Find a task!

Zetkin has many already-described tasks to go work on, in GitHub Issues, and we labeled some of them as extra suitable for newcomers. GitHub Issues labeled “Entry Level”.

Don’t be discouraged if the text makes you feel like you have no idea what is going on, these Issues are designed to be introduced by a Zetkin maintainer. Find someone who can explain.

Also, when you find one that you like, tell the others (e.g. in the Slack channel), so that you can get “assigned” to that Issue.