Developer Advocacy/Developer Portal/Content Draft

Main Page / Overview
Wikimedia is a global movement with a mission to bring free knowledge to the world.

We run the free encyclopedia Wikipedia, the multi-lingual structured database Wikidata, the media repository Wikimedia Commons, and other free knowledge projects. We keep the Wikimedia sites fast, reliable, and available to all. Our sites run on our own servers in five data centers across the world.

We build and use Free and Open software to make it easy to read, edit, and share from the Wikimedia sites. Our technology empowers diverse users and communities around the world to contribute and access free knowledge. Our vibrant free and open-source community of staff and volunteers contributes to the core software MediaWiki, supports curation workflows through tools that enhance the user experience, innovates on new forms of content creation and consumption, and interacts with our data and APIs to visualize or analyze data.



Use Wikimedia content in your software
Query, pull, and reuse content from Wikimedia sites.

  Access Wikimedia's content and metadata Use the REST API to get machine-readable content and metadata from Wikimedia sites.

 Use the MediaWiki API The MediaWiki Action API allows you to programmatically interact with data on your MediaWiki installation.
 * mw:Wikimedia REST API

 Use Wikimedia Enterprise For companies and organizations to consume and re-use Wikimedia data for commercial purposes.
 * mw:API:Main page

 Download database dumps Access publicly available data from Wikimedia sites for offline use.
 * https://enterprise.wikimedia.com/


 * m:Data dumps

Write, run, and host bots
Automate and perform repetitive tasks on a wiki.

  Create a bot Write a bot to help perform repetitive work.

 Explore popular bots Find the most popular bots used on Wikimedia sites.
 * mw:Manual:Creating a bot

 Set up and host your bot on Toolforge Toolforge enables you to make your bots and tools available to project editors, technical contributors, and other volunteers.
 * m:Small wiki toolkits/Starter kit/Bots and Tools


 * wikitech:Portal:Toolforge

Build and host web applications on Wikimedia Cloud Services
Host your Wikimedia tools to perform analytics, run webservices, and create tools that help project editors, technical contributors, and other volunteers who work on Wikimedia projects.

  Set up and host your tool on Toolforge Toolforge enables you to make your bots and tools available to project editors, technical contributors, and other volunteers who work on Wikimedia projects.

 Set up and host your software on Cloud VPS Set up and host your software to make it available to volunteers who work on Wikimedia projects.
 * wikitech:Portal:Toolforge

 Understand the difference between Cloud VPS and Toolforge Have more underlying infrastructure managed on Toolforge or have more personal freedom on Cloud VPS.
 * wikitech:Portal:Cloud VPS
 * wikitech:Help:Cloud Services Introduction

 Explore tools available on Toolforge Browse the tools used by the Wikimedia communities.
 * wikitech:Help:At a glance: Cloud VPS and Toolforge

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Access data services Learn about data services that allow direct access to databases and dumps, as well as web interfaces for querying and programmatic access to data stores.
 * m:Small wiki toolkits/Starter kit/Bots and Tools


 * wikitech:Portal:Data Services

Enhance reader and editor functionality via on-wiki code
Write code on wiki without using repositories or special server permissions.

<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Avoid duplicated work with templates Use templates for standard text when you want to include it on multiple pages.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Explore commonly used templates Find the most popular templates used on Wikimedia sites.
 * mw:Help:Templates

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Write complex templates using the Lua scripting language Write Lua modules to simplify complex templates and handle string, mathematical and logical operations.
 * m:Small wiki toolkits/Starter kit/Templates and Modules

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Define CSS to load for a template Use TemplateStyles to define a stylesheet to load for a template on a wiki page.
 * mw:Lua

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Change the behavior of the software with user scripts and gadgets Write JavaScript and save it on a wiki page to quickly enhance functionality.
 * mw:Extension:TemplateStyles

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Explore commonly used gadgets Find the most popular gadgets for Wikimedia sites.
 * mw:Gadget kitchen

m:Gadgets <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Use and embed maps in Wikimedia wikis Create interactive dynamic maps with the Kartographer extension.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Collaborate on crowdsourced Node.js and Python functions Use and write Node.js and Python code that can run on Wikipedia servers. Wikifunctions is intended to support the automatic generation of article text and data representation in every supported language.
 * mw:Help:Extension:Kartographer


 * m:Abstract Wikipedia

Machine Learning and Natural Language Processing
<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Help improve content quality on Wikimedia sites via machine learning Build and train machine learning models and infrastructure on Wikimedia sites.

<hr style="border: 3px solid grey;">
 * mw:Machine Learning

Add, manage, and improve your content and structured data on Wikimedia sites
Share data with the world, and make free knowledge more reliable and accessible.

Donate institutional data to Wikidata and Wikimedia Commons
<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Upload and manage the content of your gallery, library, archive, or museum (GLAM) on Wikimedia Commons Bulk-upload freely licensed media to Wikimedia Commons.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Upload, manage, and reuse data in Wikidata Make your organization's public data available, and improve open knowledge.
 * c:Commons:Pattypan


 * d:Wikidata:Data donation

Use Structured Data with Wikidata and Wikibase
<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Learn about Wikidata, the central knowledge base and storage for structured data in Wikimedia sites Explore Wikidata tutorials.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Use structured data for multilingual and machine-readable information on Wikimedia Commons Make files on Wikimedia Commons easier to view, search, edit, organize, and re-use.
 * d:Wikidata:Training

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Search and extract data from Wikidata Learn how to search and extract data from Wikidata with SPARQL queries.
 * c:Commons:Structured data

<hr style="border: 3px solid grey;">
 * d:Wikidata:SPARQL query service

Enhance the MediaWiki software platform
Extend functionality of the MediaWiki core software via extensions, or change its appearance via skins.

<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Learn how to develop MediaWiki code Build the basic skills you need to start developing MediaWiki core and MediaWiki extensions.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Key documents, resources, and tools for MediaWiki developers Find development policies, debugging, testing, architecture and subsystems, writing extensions, skins, and third-party libraries to use with MediaWiki.
 * mw:How to become a MediaWiki hacker


 * mw:Developer hub

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Explore existing MediaWiki extensions Browse through existing extensions.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Explore existing MediaWiki extensions deployed on Wikimedia servers Find all extensions deployed on Wikimedia servers at a glance.
 * mw:Category:Extensions

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Store, manage and access structured data with Wikibase Wikibase enables you to manage structured data in your own MediaWiki installation.
 * mw:Category:Extensions used on Wikimedia


 * mw:Wikibase

Improve page editing and help new Wikipedia editors
<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Onboarding new editors on Wikimedia sites Help newcomer editors on Wikipedia sites in their first weeks.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Improve contributors' talk page experiences The talk pages project seeks to improve the experiences of individuals who use MediaWiki talk pages to communicate.
 * mw:Growth


 * mw:Talk pages project

Contribute to native applications to edit, curate, and display Wikimedia content
<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Contribute to mobile applications Access, edit, and upload to Wikimedia websites from your mobile device.


 * Mobile Commons Android app – https://commons-app.github.io/
 * Mobile Wikipedia KaiOS app – mw:Wikipedia for KaiOS
 * Mobile Wikipedia Android and iOS apps – mw:Wikimedia Apps

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Contribute to offline applications Use software (such as Kiwix) to read Wikimedia content without having an internet connection.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Contribute to desktop apps to save experienced Wikimedia editors' time Use local software to perform repetitive work as a Wikimedia editor.
 * m:Offline Projects

<hr style="border: 3px solid grey;">
 * Huggle – Deals with vandalism on Wikimedia projects – m:Huggle
 * AutoWikiBrowser – A semi-automated editor to make repetitive editing tasks – w:en:Wikipedia:AutoWikiBrowser
 * WPCleaner – Helps with various Wikipedia maintenance tasks – w:en:Wikipedia:WPCleaner

Get metrics and statistics about Wikimedia sites for research and decision-making
Use and query metadata about Wikimedia sites to create insights and identify trends.

<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Gather statistics about data and activity on Wikimedia sites Metrics and visualizations about reading, editing, and content on Wikimedia sites.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Perform data analytics on Wikimedia sites Make data informed decisions by querying Wikimedia's dataset systems.
 * https://analytics.wikimedia.org/

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Gather statistics on the performance of Wikimedia sites Find graphs about the performance of Wikimedia sites.
 * wikitech:Analytics Engineering

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Access data services (Quarry, PAWS, Data dumps, etc) from your tool Access Wikimedia databases and dumps from your tool on Toolforge, as well as web interfaces for querying data stores.
 * https://performance.wikimedia.org/

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Perform scientific research on Wikipedia and its sister projects for scientists and engineers Turn research questions about Wikimedia into public knowledge.
 * wikitech:Portal:Data Services

<hr style="border: 3px solid grey;">
 * https://research.wikimedia.org/

Get started as a newcomer
New to the Wikimedia movement? Get an overview, understand some development basics, and learn about our communities.

<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Learn about Wikimedia's software projects and infrastructure Find out how to get started as a technical newcomer to Wikimedia.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Connect with others in the Wikimedia community Find out where to talk to and collaborate with other contributors and how to find support.
 * mw:New Developers

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Propose code changes and participate in code reviews Set up and use Gerrit, Wikimedia's collaborative code review system to submit patches for most projects.
 * mw:Communication

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Manage and plan software tasks, report bugs, and request new features Phabricator is used by Wikimedia technical contributors to collaboratively plan projects and track issues.
 * mw:Gerrit/Tutorial

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Follow the Wikimedia Tech blog Read stories about Wikimedia's technologies and software development.
 * mw:Phabricator/Help

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Find out about internships and outreach programs Wikimedia takes part in several internship and outreach programs. Find out how to participate.
 * https://techblog.wikimedia.org/

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Join our Hackathons Meet other developers and work on software projects together.
 * mw:Outreach programs

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Find code base maintainers and stewards Need to contact a code maintainer or steward? This is a list of teams who maintain MediaWiki core, key extensions, and Wikimedia servers.
 * mw:Hackathons

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Learn about the infrastructure that keeps Wikimedia sites up and running Learn about Wikimedia wikis, data centers, backups, CDN, and anything related to site reliability (SRE).
 * mw:Developers/Maintainers

<hr style="border: 3px solid grey;">
 * wikitech:Portal:Wikitech

Create quality software
Read about contribution standards and guidelines to make better software for everyone.

<div style="display: flex; flex-direction: row; flex-flow: row wrap; justify-content: space-between; padding: 0; margin: 0 -5px 0 -5px"> <div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Write performant code Learn about caching, backend and page load performance guidelines.

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Write inclusive, accessible, barrier-free code Learn best practices for creating accessible code.
 * mw:Wikimedia Performance Team/Backend performance
 * mw:Wikimedia Performance Team/Page load performance
 * mw:Manual:Performance tuning

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Make sound technical decisions for software running on Wikimedia servers The Technical Forum connects teams to stakeholders with the WMF, affiliates and volunteer community to make sound technical decisions.
 * mw:Accessibility guide for developers

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Write secure code Best practices and checklists to develop secure and robust code.
 * mw:Technical Decision Making Process

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Contribute to technical documentation Explore style guides and resources for writing better technical documentation.
 * mw:Security for developers

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Implement a consistent user experience The interactive Design Style Guide provides guidelines and best practices for designing Wikimedia products.
 * mw:Documentation

<div style="flex: 1; margin: 5px; min-width: 210px; border: 1px solid #CCC; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba(0,0,0,0.1);"> Learn about localization and internationalization Make your MediaWiki code work with all human languages.
 * https://design.wikimedia.org/style-guide/


 * mw:Localisation