User:TBurmeister (WMF)/Sandbox/DevPortal

This doc proposes a set of high-level user goals -- or "critical user journeys" -- to be used as the top-level organizing framework for v4 of the Developer Portal. This proposal is based on previous work, including but not limited to: user personas and motivations, dev portal prototype v0-v3, and user research.

Each user journey proposed will be a top-level section in v4 of the Developer Portal. The rest of this doc outlines:
 * Methodology for designing this information architecture
 * Which user personas and v3 portal contents map to the newly-proposed sections

This page partially outlines the IA, but for easier iteration and feedback the full content is temporarily in this Google doc. See that doc for:
 * Proposed subsections for each section
 * Proposed Wiki content links for each subsection

Demo
TODO

Methodology

 * Used an open cardsorting approach to identify user goals from existing content descriptions from dev portal prototype v3.
 * Mapped user persona motivations to high-level user goals.
 * Reviewed Special:MostLinkedPages, Special:MostInterwikis, and Special:MostRevisions to identify frequently-used and important docs, and ensure that they would have a sensible home in the new structure.
 * Reviewed existing content hubs (especially Developer_hub and its talk page) to ensure key links are represented prominently in the new structure.
 * Reviewed and incorporated previous work and ideas like that at User:Waldyrious/Docs.
 * Reviewed findings from in-person user interviews to align high-level sections with observed user behavior and expectations.

Proposed sections and what they cover
The following sections outline how each of the the proposed user journeys -- which are the top-level elements for the developer portal navigation -- cover the previously-identified user persona motivations and content elements of developer portal prototype (v3).

Note: headings followed by two asterisks (**) are single-sourced sections that appear in more than one location.

Explore open source projects

 * MediaWiki**
 * Wikibase**
 * Wikipedia for Android**
 * Offline reading projects**
 * Cloud tools and services
 * Technical decision making process
 * Search the codebase

Use Wikimedia content or data in your project
Persona motivations and existing prototype content covered by this section User persona motivations:
 * Use Wikimedia content in my app
 * Use an example dataset for data science purposes.
 * Use data from Wikimedia as part of my research.
 * Use data to understand my wiki, Wikimedia projects, and Wikimedia users

v3 prototype links:
 * Access content databases for Wikimedia project.
 * Access data from Wikidata.
 * Access Wikipedia without internet access.
 * Browse Wikimedia APIs
 * Download all Wikimedia projects for backup, offline use, research, and more.
 * Explore Wikimedia project data.
 * Fetch pages from Wikipedia, Wiktionary, Wikivoyage, and more.
 * Find articles in Wikipedia, images in Commons, and more.
 * Get data from Wikidata with the SPARQL query endpoint.
 * Get daily featured articles, most read pages, and more.
 * Get page view data for Wikimedia projects.
 * Get the number of unique devices accessing Wikimedia projects.
 * Get Wikidata, page views, edit scores, and more data from Wikimedia projects.
 * Get mobile-friendly content, featured article feeds, pageview data, and more.
 * Get pages by title on any Wikimedia project.
 * Get pages in mobile format.
 * Monitor the current and past performance of Wikimedia sites.
 * Review recent changes, and monitor content
 * Learn to use the MediaWiki Action API Geosearch module
 * Learn to use the MediaWiki Action API Images and Imageinfo modules
 * Retrieve and present relevant information from Wikidata by associating it with entities in my application.
 * Use MediaWiki Action API
 * Use MediaWiki REST API
 * Use Event Streams API to get the most recent changes to Wikimedia projects.

Reuse wiki content

 * Get featured content by date
 * Search for and display wiki pages and media
 * Parse wikitext page content
 * Get pages in mobile format
 * Get data from Wikidata with SPARQL

Access data and analyze wikis

 * Use Wikimedia open data sources
 * Get data about wikis
 * Get data dumps
 * Query content databases
 * Use machine learning to detect vandalism
 * Get a stream of recent changes
 * Access structured knowledge on Wikidata
 * Explore project data on WikiStats

Build and discover tools
Persona motivations and existing prototype content covered by this section User persona motivations:
 * Improve a tool (mine or someone else's)
 * Share something cool that I built
 * Solve a problem on my local wiki
 * Download Wikimedia content to use in an offline app or to host a mirror

v3 prototype links:
 * Add context when searching for Wikipedia pages using the MediaWiki Action API.
 * Create bots that automate editing and wiki maintenance.
 * Edit pages from Wikipedia, Wiktionary, Wikivoyage, and more.
 * Find and share tools on Toolhub.
 * Get the latest updates, and connect with tool developers
 * Guide editors by suggesting places in an article where a link could be added.
 * Host your tools with Toolforge.
 * Suggest images to improve articles
 * Adapt code to different languages and regions.
 * Add or remove pages from a watchlist.
 * Create and edit pages.
 * Create bots that automate editing and wiki maintenance.
 * Learn to use the MediaWiki Action API Parse and Links modules
 * Use machine learning to detect vandalism.

Change MediaWiki behavior and appearance

 * Change the appearance of MediaWiki with skins
 * Add JavaScript or CSS gadgets to a wiki
 * Add scripting to wiki pages through templates

Automate editing and maintenance

 * Create scripts or bots that interact with MediaWiki pages
 * Use ML to detect vandalism

Extend and customize MediaWiki functionality

 * Browse extensions
 * Write new extensions
 * Improve or maintain extensions
 * Extensions FAQ

Contribute to Wikimedia open source
Persona motivations and existing prototype content covered by this section User persona motivations:
 * Contribute to a Wikimedia open source project
 * Contribute to Wikimedia docs.
 * Create documentation for a new Wikimedia project.
 * Improve the Wikimedia technical documentation that I use.
 * Learn about our tech stack and systems
 * Translate docs into my language.
 * Translate interfaces into my language.

v3 prototype links:
 * Explore Wikimedia open source code bases.
 * Find resources for writing and maintaining technical docs.
 * Learn about the infrastructure behind Wikimedia projects.
 * Read security policies for the MediaWiki platform and the Wikimedia Foundation.
 * Understand best practices for writing code for Wikimedia software.
 * Find maintainers and code stewards for Wikimedia open source software.

Learn how contributing works

 * Contribute to Wikimedia software
 * Contribute to MediaWiki and MediaWiki extensions
 * Code of conduct

Featured Wikimedia open source projects

 * MediaWiki**
 * Wikibase**
 * Wikipedia for Android**
 * Offline reading projects**

Connect with the tech community
Persona motivations and existing prototype content covered by this section User persona motivations:
 * Find out what other people and teams are working on.
 * Connect with other technical contributors
 * Figure out who is responsible for something/who I can talk to about a specific topic or technology.
 * Mentor outreach participants.
 * Share something cool that I built

v3 prototype links:
 * Get a stream of the latest changes to Wikimedia projects.
 * Learn about why and how technical decisions are made.
 * Stay up to date with the latest updates.
 * Subscribe to the mailing list for notifications of breaking changes and other important announcements.
 * Track software deployments to Wikimedia Foundation servers.
 * Apply for a grant to improve software or conduct research.
 * Discussion related to the MediaWiki API and its ongoing development
 * Explore content from past hackathons or join us for an upcoming event.
 * Find maintainers and code stewards for Wikimedia open source software.
 * Find out about internships and mentoring opportunities with Wikimedia.
 * Get the latest updates, and connect with tool developers
 * Join the offline projects user group.
 * Understand the principles we follow to foster a welcoming community.

Communicate effectively

 * Communication channels
 * Code of conduct

Wikimedia Foundation technical operations

 * Cloud services
 * Technical infrastructure
 * Software deployments
 * Performance monitoring
 * Security policies
 * System architecture

Get tech project updates

 * Wikimedia tech news
 * Technical community newsletter
 * Tech blog
 * Technical decision records

Grow your technical skills
Persona motivations and existing prototype content covered by this section User persona motivations:
 * Grow my technical skills
 * Learn about and apply for outreach programs.

v3 prototype links:
 * Explore content from past hackathons or join us for an upcoming event.
 * Find out about internships and mentoring opportunities with Wikimedia.
 * Explore system architecture documentation.