Python best practices: How to contribute to Python open-source projects

Dominik Kozaczko - Backend Engineer

Dominik Kozaczko

2 February 2020, 6 min read

thumbnail post

What's inside

  1. Learn more about the project
  2. Check its status
  3. Make it personal to build trust
  4. Start small
  5. Which Python open-source projects are beginner friendly?
  6. Our Python open-source projects

Note: This article was updated on February 2nd, 2020.

One of the things we love about Python is its rich ecosystem that comprises countless modules, libraries, and frameworks - together with all the passionate developers who make it all happen.

A developer who wants to score a great a job in an exciting project needs to show off their programming skills in one way or another.

And the best way to do that is by contributing to open-source projects. That way, you not only get to share your expertise but also help Python developers be more productive.

So let’s say you’ve launched some side projects and are now looking to contribute to some more popular Python open-source projects.

Where do you get started?

Learn more about the project

Before contributing to a project, you need to understand what it’s all about and how it works. That means that you’ll have to try it for yourself.

Contributing to a project only makes sense if you find it interesting and useful.

If you try to contribute to a project without first using the software, the chances are high that you fail and give up. It’s impossible to build a new feature or fix a bug without knowing how the software works in the first place. Learn to walk before you run.

Check its status

It’s critical that you pick a project which is active. If you send a pull request (PR) to a dormant or unmaintained project, your work may never be reviewed and merged. And that’s just a waste of your time and brainpower.

Be sure to look for a project with an active community. That way you’ll get instant feedback on your code. Your contribution won’t go to waste.

But how do you tell whether a project is active? Fortunately, platforms like Github provide a wealth of data that suggest the degree of activity in a project.

Here's what you can look at to tell whether a project is active:

  • Contributors - is the number of contributors growing? If it is, it’s a sign that the community is interested in the project and the creators may be more willing to accept new people.
  • Commits - how old is the most recent commit? If you see a commit which is a week or month old, it’s a sign that the project is being maintained and contributing to it is a good idea.
  • Maintainers - how many people maintain the project? The more of them, the better. It means that the project has more potential to attract highly-skilled mentors to help you with your code. This is by far the best way to improve as a programmer.
  • Activity in the chat room - do you see a busy chat room for the project? That means you’ll get answers to your questions quickly.

Make it personal to build trust

It’s not easy to have your contributions accepted without first building trust with the people running the project.

Creating random pull requests won’t get you there. But personal connections will.

That’s why it’s smart to approach the people behind the Python projects to which you’d like to contribute and make contact with them. You can ask questions on pull request discussions or issue pages and even reach out to the main dev team using Twitter.

Building relationships takes time, so don’t expect instant results. But once you make yourself more familiar to project maintainers, you’ll eventually get the opportunity to be accepted and things will take off from there.

Start small

When approaching project creators, ask them if you could help with something small. It can be fixing typos or even cleaning up the documentation.

Maintainers of open-source projects appreciate it when first-time contributors offer to help in simple tasks like improving the project’s documentation, simply, because nobody else is willing to do it.

Smart developers who maintain open-source projects may ask “Imagine that you’d want to learn everything you need from this documentation - how would you improve it?” They realize that the task means the potential contributor will get to know the project from the inside out.

Starting out with the documentation offers an excellent opportunity for getting your foot in the door and making yourself known. This should set you up for future opportunities to contribute to the project.

Which Python open-source projects are beginner friendly?

There are plenty of projects that welcome beginners to make contributions. You can find a rich list of such open-source projectshere.

Here are a few that we recommend:

  • coala - this library provides a unified command-line interface for linting and fixing code (works not only for Python).
  • Ansible - that one is a simple IT automation platform.
  • cookiecutter - a command-line utility that creates projects from project templates (called cookiecutters) (), for example, Python package projects or a jQuery plugin.
  • scrapy - this library offers a fast and high-level framework for web crawling & scraping written in Python.

Our Python open-source projects

We are thankful to the Python community for helping us improve our skills over the years. That’s why we want to give back. We organize, host, and sponsor community events. But we also like to be a part of Python’s development.

We currently run four open-source projects:


This is our library for implementing login mechanisms, user account setup and management from the REST API level (using Django REST Framework). We’ve just released djoser 2.0.3 with a host of new features. For example, we added the option to set 'permission_classes' for standard djoser views in the app settings.


Djops is our cookiecutter for Dockerized Django-based projects. Install it to get a Docker-Compose project that includes:

  • a PostgreSQL database;
  • Redis;
  • Django project;
  • Celery worker;
  • Celery Beat.


This library allows sending emails using the Django template system. It’s a simple wrapper for django.core.mail.EmailMultiAlternatives CONSOLAS which makes use of the Django template system to store email content in a separate file.


This open-source library offers a highly-customizable and versatile mediator for payment brokers.

If you’d like to contribute to one of our open-source projects, get in touch with us - we look forward to hearing from you!

Dominik Kozaczko - Backend Engineer

Dominik Kozaczko

Backend Engineer

Dominik has been fascinated with computers throughout his entire life. His two passions are coding and teaching - he is a programmer AND a teacher. He specializes mostly in backend development and training junior devs. He chose to work with Sunscrapers because the company profoundly supports the open-source community. In his free time, Dominik is an avid gamer.




Recent posts

See all blog posts

Are you ready for your next project?

Whether you need a full product, consulting, tech investment or an extended team, our experts will help you find the best solutions.

Hi there, we use cookies to provide you with an amazing experience on our site. If you continue without changing the settings, we’ll assume that you’re happy to receive all cookies on Sunscrapers website. You can change your cookie settings at any time.