New Developers

This page explains how to get started as a developer who wants to contribute to Wikimedia technical projects.

Welcome!


Wikimedia's technical community always welcomes new contributors!

Become part of a global community, and help make access to free knowledge easier for everyone!

How to start contributing
The following steps are a general outline of how to get started contributing:


 * 1) Learn the basics of how Wikimedia open source software projects work.
 * 2) Read the Communication guidelines.
 * 3) Set up accounts: Create a developer account. Depending on the type of contribution you want to make, you may also need to set up accounts in Phabricator, and set up Git and Gerrit.


 * 1) Choose a software project.


 * 1) Choose and solve a task (write and test your code).


 * 1) Submit your code changes for review.  Follow the Guide to getting your code reviewed and submit a patch.

The rest of this guide provides additional details about the process.

Basics of how Wikimedia software projects work
Wikimedia has software projects in.

The maintainers of each software project choose the infrastructure they prefer. In general, most software projects have:


 * a task tracking tool where software bugs and enhancement requests are reported, managed and discussed. Examples are Wikimedia Phabricator, GitHub, or Wikimedia GitLab.


 * a code repository where the source code can be "checked out" to everybody. Examples are Wikimedia Gerrit, GitHub, or Wikimedia GitLab.


 * a code review tool where proposed code changes ("patches") get discussed and improved. Examples are Wikimedia Git/Gerrit, GitHub, or GitLab. After your proposed patch is approved and merged into the code repository, your code changes become available to everybody.


 * general places for discussion of the software project and for help and support. Those places can be mailing lists, IRC chat channels, wiki pages, or other places. The exact places depend on each project.

At any point, if you run into problems or need help, please ask. To ask good questions in the right places, follow the "communication tips".

Overview of technical areas
For an overview of Wikimedia technology and examples of the major areas where developers can contribute, visit Introduction to the Wikimedia Technical Ecosystem.

Contributing to software in MediaWiki
Are you a user of a MediaWiki wiki looking to add a feature or fix a bug in one? Please see How to become a MediaWiki hacker to learn how to find and contribute to the software project part of MediaWiki you are looking for.

Choose a software project
The following projects offer resources, mentorship, and are looking for new developers to contribute to them. Choose one of the following projects and follow the project's documentation to set up your development environment, choose a task to work on, solve the task, and submit your code changes for review. You are free to contribute to these projects or any others you are interested in related to Wikimedia. Most can be found by searching for them on or online.

''Are you a maintainer and want your project to be included in the list of software projects above? Find out more and join!''

Outreach programs and single tasks
In addition to the recommended software projects above, there are more ways to choose a project or task to work on:

Additional resources

 * Introduction to the Wikimedia Technical Ecosystem provides an overview of Wikimedia tech, focused on the major areas where developers can contribute.


 * How to contribute lists many more ways to contribute, including areas like documentation, testing, and more.


 * How to become a MediaWiki hacker: For developers who want to work on MediaWiki core or MediaWiki extensions.


 * Developer hub: More resources for established Wikimedia developers.


 * To ask your questions and to join general discussions, check the places listed on Communication.
 * Wikimedia tutorials: An index of tutorials that feature various languages, APIs, and frameworks in the Wikimedia technology stack.