Reading/Reading Lists

Recently, the various Reading teams have found our work converging around a number of related feature sets. These features and projects will likely continue to have separate implementations, but we want to consider them as a whole so that we can share infrastructure, user stories, and learnings across products.

Why
There are a number of different things that have come up around the same time that have caused us to look into this.
 * New Readers offline focus, with features being extended on both mobile web and Android
 * App user interest in synced bookmarking and offline features
 * Doc James community wishlist proposal, being worked on by the Reading Android team
 * Book creator (OCG) is dying and needing to be replaced/deprecated

What

 * Multiple features built for specific populations of users (or potential users) across all three platforms (web, Android and iOS)
 * Shared backend requirements and development
 * Shared product glossary
 * Shared design language

Glossary

 * Reading list - A list of articles selected by a user, and organized into individual lists. Lists may or may not be stored off line. Lists are not shareable or sync-able across devices. Currently used on Android
 * Saved pages - An earlier version of Reading lists which is still used on iOS. Similar to Reading lists, but essentially a single list without any organizing capabilities.
 * Synced reading list - A proposed extension of Reading lists, which allows opted-in, logged in users, to sync their Reading lists to a central service, enabling them to sync lists across multiple devices using a single account.
 * Compilation - A pre-collected set of Wiki pages, loadable into a Wikipedia reader. Compilations differ from reading lists in that they are obtained from a separate service, and are not currently user create-able or curate-able. These type of downloadable packs of wiki pages are currently used by the Kiwix and Wikimed apps.
 * ZIM file - The file format used to store a compilation. A variant of the common zip compression format, specific to storing html offline.
 * Book creator extension - An existing MediaWiki extension for creating collections of pages on the web. Books are public wiki pages that any user can download and create, and that admins can patrol and manage. At one time these were downloadable as ZIM files for use offline, but that functionality is no longer available.
 * Collections (aka Gather) - A beta extension created by the Foundation's (no longer existing) Mobile team. Collections also allowed readers to create named lists of wiki pages. However Collections (also known by the codename Gather) was specifically focused on public social sharing and publishing of these collections on Wikipedia itself. Because of the lack of administrative control and other community concern around its implementation, the extension was removed from beta in 2016.

How

 * Meetings! We kicked off this discussion during the Reading team's onsite in March. From there, product managers have met to continue to dig in.
 * Develop understanding of products/features vs. user stories vs. personas
 * Identify and specialize personas from New Readers and previous Design Research work, who have needs relating to downloading, bookmarking, sharing and reading collections of articles
 * Generate a list of {use-cases|features|stories}
 * Create a matrix of each persona X each story
 * Assign priority that persona would give that story
 * Extract shared requirements for backend needs
 * Begin design process for initial features for Android offline Compilations support
 * Begin RfC process for Synced Reading lists support
 * Product wiki page
 * Draft RfC for backend in Phab
 * Phab epic boards:
 * Synced reading lists
 * Offline (including Android Compilations work)

Additional Background Materials

 * Understanding Android offline collections. A slide deck prepared by User:RHo (WMF) to help flesh out understanding
 * Etherpad notes from initial meetings: [1][2][3]
 * Ongoing design research into app users usage and needs around reading lists

How does Watchlist fit in?
The Watchlist is another way that users of Wikimedia projects collect groups of articles together, in this case to notify editors of changes to those articles. Our work will not build on the Watchlist infrastructure, but we are thinking about how Watchlist fits into the user experience for readers and editors alongside other features.

Our goal is to coordinate across reading audience for lists related to consumption, not a single, complex mega-solution for all lists of articles. Watchlist has a complex technical and usage history and would significantly increase scope of these efforts beyond feasibility.