Wikipedia:Page Curation/2023 Moderator Tools project

From Wikipedia, the free encyclopedia

The Wikimedia Foundation's Moderator Tools team will be spending 3 months working on improvements to PageTriage, between April and July 2023. Though our efforts will be focused on getting the extension to a place where it can be maintained by our team more proactively than it has been in the past, we also hope to work on some user-facing improvements.

We'll use this page to provide updates, pose questions, and solicit input. Please feel free to add your thoughts or questions to the talk page!


In recent years the PageTriage extension has only been lightly maintained, if at all, by the Wikimedia Foundation. The reasons for this are that it uses outdated technologies for which engineering expertise has been lacking, currently only works on the English Wikipedia, and has been the responsibility of a team which has taken on the maintenance burden for a wide range of extensions (Growth). Despite this, we know that PageTriage serves an important function for what is the largest and most-viewed Wikimedia project, and we believe it should therefore be properly maintained and free of major bugs, in agreement with the 2022 WMF letter.

As such, we are aiming to work on a project between April and June 2023 which focuses on bringing the extension to a place where we feel confident that it can be maintained in the long-term. While we may address some new feature requests during this time, we are hesitant to add additional code to the extension without first addressing major technical debt, so this is unlikely to be the priority during this timeframe. We also want to note that our existing work may run over into April, so we might not be getting started right away in that month. Either way, we're aiming to spend 3 months on this project initially.


We will clarify the details of this project closer to April - as there is ongoing work by volunteer developers and some WMF engineers to address some of these issues already - but this project may include:

  • Replacing outdated technologies (e.g. JavaScript frameworks) with more modern supported technologies (e.g. T208256)
  • Improving test coverage and documentation
  • Refactoring functionality to make the extension easier to maintain, extend, and re-use in the long-term
  • Instrumenting data collection to better understand user workflows and how these change in response to improvements
  • Addressing some high priority new feature requests

Because the extension repository is now quite active, especially with volunteer developers, it’s hard to be more specific about the work we’d take on. Before April we will meet with volunteer developers and WMF staff who have worked on the extension to understand the latest changes and come to an agreement on the highest priorities for our team's contributions.


In parallel, during this quarter, the Moderator Tools team will consult with other Wikimedia communities to understand their needs around content review and reporting processes. From our previous research we know that other communities have duplicated processes and volunteer tools to perform many of the same functions as PageTriage and New Page Patrol. As the team’s engineers learn more about the PageTriage codebase and what is possible from a refactor, we will be able to better understand the overlap between the functionality provided by this extension and the needs of other communities.

Towards the end of this quarter, we will reassess the situation to make longer-term plans for the following fiscal year. If technically possible, and we discover the potential for value in other communities, we may begin making PageTriage, or elements of it, wiki-agnostic.


We'll share updates on our progress here as and when we have them.

July 21, 2023[edit]

TL;DR: We need your help to test a new version of the NewPagesFeed. Head over to Special:NewPagesFeed?ui_version=1 to test it out, and report issues and feedback on the talk page or in Phabricator. The default experience of Special:NewPagesFeed is currently unchanged.

As part of our efforts to make technical improvements to PageTriage we have extended DannyS712's patch to migrate the NewPagesFeed to the Vue.js Javascript framework. Moving away from deprecated Javascript frameworks to a modern, MediaWiki-wide supported, framework makes PageTriage:

  • Easier to maintain, because developers can use the same Javascript framework as is becoming the norm in other areas of the MediaWiki codebase and don't need to learn a new syntax.
  • Less prone to bugs, because the code is laid out in a way which makes it easier to write tests for.
  • Able to leverage the benefits of centrally designed and maintained UI elements from Codex. These have had a lot of design effort put in to them to ensure that they're accessible, function on a wide range of supported devices, and are properly internationalised.

Overall, this upgrade will make it substantially easier to build and maintain new features for PageTriage in the future, and less likely that errors will be introduced.

In moving the NewPagesFeed to Vue.js we have tried to retain the current visual layout and style as much as possible. Although some spacing and UI elements have changed a small amount, now using those centrally-maintained elements from Codex, you should find that the experience overall is the same as it has always has been.

The NewPagesFeed has not been updated yet - to test the new version you can head to Special:NewPagesFeed and use the ?ui_version=1 URL parameter (direct link). If you're not using this parameter, the feed should remain unchanged.

If you find any bugs with the new interface, or have strong feelings about any of the UI changes, please let us know on the talk page. We're already aware of a number of bugs, filed as subtasks at T324914.

July 13, 2023[edit]

We’re closing in on the end of our focused time improving the code quality, test coverage, and documentation of the PageTriage extension. We plan to post a full report of our work in the next update!

We’re really close to finishing the NewPagesFeed Vue patch - we’re making sure all the i’s are dotted and t’s are crossed in code review so that we can get it out for testing. I really hope to have a more concrete update on this soon!

Looking ahead to August, we’ll be wrapping up our core work on this project, and will be looking to ensure that PageTriage is ready for the changes coming with IP Masking. This will be focused on any technical migrations which need to happen, but please let me know if you think there are any features which will be less effective as a result of unregistered users using cookie-based temporary accounts rather than being IP-based. We can then look at prioritising bridging those gaps where possible.

Completed tasks[edit]

Ongoing work[edit]

June 26, 2023[edit]

Just a quick update this week. In the past two weeks we’ve been able to get a number of backend patches merged, improving testing and migrating to new code standards.

The NewPagesFeed Vue patch is still progressing well, albeit on a longer timescale than we'd hoped - thanks to DannyS712 for the valuable code feedback!

Completed tasks[edit]

Ongoing work[edit]

June 12, 2023[edit]

Hi all, apologies for missing an update last month - quite a few members of our team were out for various lengths of time recently, and some other work had our attention, so we didn’t have much to report! I’ve got a quick update on where we’re at and the work we have lined up.

The NewPagesFeed Vue migration is progressing well, and we hope to have that demo for you very soon. We’ve reviewed our roadmap and decided that we would like to have both this and the Curation Toolbar migration deployed before we wrap up our focused work on PageTriage. As such, we’re extending the time we’re spending through to approximately the end of July. This should give us enough time to wrap these projects up as well as giving us a little time to fix a few user-facing issues.

We do expect to continue working on PageTriage a little beyond this, as IP Masking is now underway in earnest. Our team will be reviewing the extensions we’re responsible for to make sure nothing is going to break, which includes this one. We do also expect to continue maintaining the extension and reviewing patches in the long-term, but I’ll have more details about that towards the end of our planned work.

Alongside our work on the Vue migration, we’ve been continuing to replace deprecated code while improving test coverage.

Ongoing work[edit]

May 15, 2023[edit]

We only have a brief update this week to say that we’re continuing with the work highlighted in our previous update. The NewPagesFeed Vue/Codex upgrade is coming along nicely - we hope to have a demo soon - and after getting stuck for a little while we’re now progressing well again with replacing deprecated code and improving test coverage.

Completed tasks[edit]

Ongoing work[edit]

May 1, 2023[edit]

This is a quick status update on how we’re progressing so far, what work we’ve done, and what we’re seeing as the next priorities. We’ll aim to post another update in two weeks’ time, though we may have a demo to share before then demonstrating some minor UI changes. As always, feel free to post on the talk page with questions or comments at any time.

In the last update (below) we noted that we’re prioritising testing, documentation, and moving towards Vue.js as the extension’s Javascript framework. Over the past two weeks we’ve been investigating how each of these lines of work could proceed, and have decided to start with the Vue.js transition. We initially considered starting with improving test coverage, but in doing so we discovered that we would need to rewrite a substantial amount of code. As such, we figured that we would start with the Vue.js migration, and improve test and documentation coverage as we go, rather than refactoring code twice.

Moving away from backbone.js and underscore.js will be a big boon to the technical maintainability of the extension. These technologies aren’t used anywhere else in production MediaWiki, making them a blocker to developers who might otherwise be able to contribute more easily. The standard that we’re moving towards in MediaWiki is Vue.js, using the Codex component library as the standardised set of UI elements. Using Codex means that we gain the benefit of shared design components which have been thoroughly tested, are accessible, support right-to-left languages, and will receive centralised support going forward.

Current design of the NewPagesFeed Review button
NewPagesFeed Review button from Codex

There has been some concern about changing the way PageTriage looks and feels if we use Codex, so I want to confirm that we’re going to try to change as little as possible about the experience of using PageTriage. Although this change might involve the visual style of some elements like buttons and icons changing, our goal is that the extension should feel more-or-less the same as it does today. Whenever we are going to make a user-facing change, we’ll make sure to post mockups or demos here for you to review in advance. I've posted an example - to the right - of the level of change we're talking about - the 'review' button in NewPagesFeed changes from one style to another, but is otherwise in exactly the same place and functions in the same way as always (the 'potential issues' information is only missing from the second screenshot for technical reasons).

Our engineers are currently building on the great work of DannyS712 to set up a Vue.js + Codex demo of the NewPagesFeed (T324914). Visual changes should be limited to simple components like button styles, and should not substantially alter the layout of the page. Once we’ve got this closer to being done we’ll set up a demo for you to try out.

In addition to the above, we’ve also been updating some deprecated code and improving test coverage alongside this.

Completed tasks[edit]

Ongoing work[edit]

April 17, 2023[edit]

This project is now underway in earnest! Our team's engineers have started working on their first tickets and submitting patches, and we've been engaging with WMF staff and volunteer developers to understand the highest priority work we can do over the next few months to make PageTriage an extension that's easier to maintain and improve in the long-term. As noted above, we didn't want to simply add more technical debt to the extension, making it even harder for future maintenance and improvements, but rather want to focus on ensuring that this extension will continue to function and receive updates for as long as it's valuable to editors.

At /Technical prioritisation we've summarised the range of technical priorities we brainstormed internally. Active volunteer developers have now shared their prioritisation rankings with us and we're discussing those on that page and in the NPP Discord, for quick thoughts & feedback. In summary, we're likely to focus our efforts on:

  • Improving the state of software tests: If we have good test coverage, then when anyone makes changes to the PageTriage extension we can have a much greater confidence that those changes work correctly and will not break existing functionality.
  • Improving documentation: There is a substantial amount of code-level documentation missing. This makes it harder for engineers to understand how the codebase works, slowing their work. We hope to improve this as we work on the extension as an ongoing effort, so that future developers are less likely to encounter this problem.
  • Working towards upgrading from deprecated Javascript frameworks to Vue.js. Needing to learn a Javascript framework which is deprecated in MediaWiki is one of the biggest blockers to WMF support for PageTriage, so there is agreement to move to Vue.js, which is the new standard. This may be a large project so we're only committing to moving towards this goal at this stage.

We haven't forgotten about user-facing changes! Although these will be a proportionally smaller amount of our time over the next few months, we will still work on some. There are a substantial number of large and small feature improvements and bugs already listed on the Phabricator board, including a number which came up from our February interviews. Now is a good time to take a look through those and post any updates, clarifications, or +1s so that we can best understand which changes to focus on.

Completed tasks[edit]

February 27, 2023[edit]

Over the last few weeks we interviewed six active New Page Patrollers, learning how they patrol articles, what tools they use, and what frustrations they have. We've published a summary of this research at /Interview research.

Please have a read and let us know your thoughts on the talk page!

February 3, 2023[edit]

In the past couple of weeks we've started interviewing active New Page Patrollers and have been learning a lot about what patrolling looks like today. These interviews are continuing over the next week or two, after which we'll summarise what we've learned on this project page.

We've also started diving into some data for a quantitative view of the process. Some statistics uncovered so far, looking at the date range March - September 2022:

  • Approximately 560 new non-redirect articles are created every day on the English Wikipedia
  • 60% of those (~340) are made by users without the autopatrolled user right, and therefore require NPP review.
  • Nearly 600 pages are marked as reviewed each day (the excess includes redirects and pages which were not newly created, e.g. converted from a redirect to a page)
  • In this time period, 495 editors marked at least one page as reviewed. 189 editors marked at least thirty pages as reviewed.
  • Of the 8,057 newly created articles which were moved to the Draft namespace, 6,171 (77%) of them were either still in Draft space or had been deleted by January 2023. 1,864 (23%) were moved back to article space.

We're also starting to think about our prioritisation process for deciding what our team works on. Our current expectation is that we'll aim to spend around 70% of our time, likely mostly at the outset of the project, working on technical issues which are unlikely to affect the user experience. These improvements are critical to ensuring that we can maintain the PageTriage extension long-term and have a solid base for making improvements. We do, however, then plan to spend around 30% of our time on feature improvements. While the technical priorities are likely to be determined by the team's engineers and volunteer developers specifically, we'd like to design a broader participatory process for deciding which features get worked on. If you have any thoughts on what that should look like, please share them on the talk page.

January 2023[edit]

Although we're not delving into this project in detail just yet, we are getting some of the foundations in place so that we can hit the ground running in April. To summarise:

  • This project page has been created and shared. We plan to update it as we progress. Once we have some tangible questions or items for feedback we plan to ping all participants of the 2022 WMF letter.
  • We're starting enwiki user research - we want to learn how patrollers currently use PageTriage to patrol new articles. If you're interested in participating please see this message.
  • We're also making more thorough plans for how we're going to learn about new page patrolling in other communities, such as which Wikimedia projects we'll target, what we want to learn, and where we want to be after interviewing editors.