The main duties

The maintainer is responsible for:

Repository ownership doesn’t mean that the owner needs to do all the required work, it means that they ensure the work gets done.

Setting expectations

Responding to issues and pull requests

To set the expectations correctly, the maintainer will make sure that when an issue or a pull request is submitted, the issuer gets notified that a human has seen the submission and what happens next. This can mean:

Defining and communicating the vision

It’s necessary to clearly express what’s the future of the project. A good idea is to groom the backlog and decide on what the next major steps will be. A good tool to communicate the vision is the GitHub Milestones or GitHub Projects.

Obsolete projects

If the project is not to be maintained any longer, it’s necessary to archive it and ideally, add a disclaimer explaining why the repo is archived.


The first response time and any follow-up to a customer’s reply should not exceed 5 business days. If a reply will take longer, it’s necessary to update the expectation of the person waiting for the reply.

The resolution time depends on an actual issue/PR. Again, keep customer’s expectations about the resolution time up to date.

Keeping the repository in a good shape

The maintainer must ensure the repository is in a healthy state. This includes:

Managing the releases and keeping them in sync with product development

The maintainer is responsible for making sure:

The release process consists of two steps:

  1. Publishing new version on the package manager (.NET -> Nuget, node/js -> npm, …)
  2. Ensuring the proper announcement
    • New feature is described in release changelog
    • Decide whether to announce new version in product changelog/discord/newsletter

💡 Make your life easier

Many of the tasks can be automated - e.g. stale pull requests can be closed automatically, version management to be automated to a large extent, keeping things in sync with other systems like Jira can be automated. Be smart and automate!