Developer Advocacy/Developer Portal/Content Draft

This was a proposal for an initial content/structure of what is now the Developer Portal.
Each use case links to its most relevant documentation (i.e. to pages on wikitech or mediawiki.org).
This is not a design or layout proposal, and this is not a ranking or order.
  • For the same content rendered per section instead (which could be easier to read), see this HTML page.
  • For general info and context, see Developer Portal.

Main Page / Overview

edit

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

edit

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.

Use Wikimedia Enterprise

For companies and organizations to consume and re-use Wikimedia data for commercial purposes.

Download database dumps

Access publicly available data from Wikimedia sites for offline use.


Build tools, gadgets, and bots for your Wikimedia community

edit

Write, run, and host bots

edit

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.

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.

Build and host web applications on Wikimedia Cloud Services

edit

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.

Understand the difference between Cloud VPS and Toolforge

Have more underlying infrastructure managed on Toolforge or have more personal freedom on Cloud VPS.

Explore tools available on Toolforge

Browse the tools used by the Wikimedia communities.

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.

Enhance reader and editor functionality via on-wiki code

edit

Write code on wiki without using repositories or special server permissions.

Avoid duplicated work with templates

Use templates for standard text when you want to include it on multiple pages.

Explore commonly used templates

Find the most popular templates used on Wikimedia sites.

Write complex templates using the Lua scripting language

Write Lua modules to simplify complex templates and handle string, mathematical and logical operations.

Define CSS to load for a template

Use TemplateStyles to define a stylesheet to load for a template on a wiki page.

Change the behavior of the software with user scripts and gadgets

Write JavaScript and save it on a wiki page to quickly enhance functionality.

Explore commonly used gadgets

Find the most popular gadgets for Wikimedia sites.

m:Gadgets

Use and embed maps in Wikimedia wikis

Create interactive dynamic maps with the Kartographer extension.

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.

Machine Learning and Natural Language Processing

edit
Help improve content quality on Wikimedia sites via machine learning

Build and train machine learning models and infrastructure on Wikimedia sites.


Add, manage, and improve your content and structured data on Wikimedia sites

edit

Share data with the world, and make free knowledge more reliable and accessible.

edit
Upload and manage the content of your gallery, library, archive, or museum (GLAM) on Wikimedia Commons

Bulk-upload freely licensed media to Wikimedia Commons.

Upload, manage, and reuse data in Wikidata

Make your organization's public data available, and improve open knowledge.

Use Structured Data with Wikidata and Wikibase

edit
Learn about Wikidata, the central knowledge base and storage for structured data in Wikimedia sites

Explore Wikidata tutorials.

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.

Search and extract data from Wikidata

Learn how to search and extract data from Wikidata with SPARQL queries.


Contribute to the MediaWiki software platform and stand-alone applications

edit

Enhance the MediaWiki software platform

edit

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

Learn how to develop MediaWiki code

Build the basic skills you need to start developing MediaWiki core and MediaWiki extensions.

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.

Explore existing MediaWiki extensions

Browse through existing extensions.

Explore existing MediaWiki extensions deployed on Wikimedia servers

Find all extensions deployed on Wikimedia servers at a glance.

Store, manage and access structured data with Wikibase

Wikibase enables you to manage structured data in your own MediaWiki installation.

Improve page editing and help new Wikipedia editors

edit
Onboarding new editors on Wikimedia sites

Help newcomer editors on Wikipedia sites in their first weeks.

Improve contributors' talk page experiences

The talk pages project seeks to improve the experiences of individuals who use MediaWiki talk pages to communicate.

Contribute to native applications to edit, curate, and display Wikimedia content

edit
Contribute to mobile applications

Access, edit, and upload to Wikimedia websites from your mobile device.

Contribute to offline applications

Use software (such as Kiwix) to read Wikimedia content without having an internet connection.

Contribute to desktop apps to save experienced Wikimedia editors' time

Use local software to perform repetitive work as a Wikimedia editor.


Get metrics and statistics about Wikimedia sites for research and decision-making

edit

Use and query metadata about Wikimedia sites to create insights and identify trends.

Gather statistics about data and activity on Wikimedia sites

Metrics and visualizations about reading, editing, and content on Wikimedia sites.

Perform data analytics on Wikimedia sites

Make data informed decisions by querying Wikimedia's dataset systems.

Gather statistics on the performance of Wikimedia sites

Find graphs about the performance of Wikimedia sites.

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.

Perform scientific research on Wikipedia and its sister projects for scientists and engineers

Turn research questions about Wikimedia into public knowledge.


Get started as a newcomer

edit

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

Learn about Wikimedia's software projects and infrastructure

Find out how to get started as a technical newcomer to Wikimedia.

Connect with others in the Wikimedia community

Find out where to talk to and collaborate with other contributors and how to find support.

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.

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.

Follow the Wikimedia Tech blog

Read stories about Wikimedia's technologies and software development.

Find out about internships and outreach programs

Wikimedia takes part in several internship and outreach programs. Find out how to participate.

Join our Hackathons

Meet other developers and work on software projects together.

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.

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).


Create quality software

edit

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

Write performant code
Write inclusive, accessible, barrier-free code

Learn best practices for creating accessible code.

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.

Write secure code

Best practices and checklists to develop secure and robust code.

Contribute to technical documentation

Explore style guides and resources for writing better technical documentation.

Implement a consistent user experience

The interactive Design Style Guide provides guidelines and best practices for designing Wikimedia products.

Learn about localization and internationalization

Make your MediaWiki code work with all human languages.