Flow/Basic information

The Basics
The totality of Flow consists of the following major components and ideas:


 * Flow Board - A metaphoric "location" where one views discussions
 * Subscriptions - Similar to the concept of "watching" pages
 * Tags - These are similar to MediaWiki categories but are significantly more powerful, if only due to the concept of "tag interesection"
 * Flow Modules - Software elements which are "Flow-enabled" and thus publish into the Flow feed.

Flow Boards
The most central concept to understanding Flow is that of the Flow board. It is perhaps easiest to think of a Flow board as a super-charged "feed" of interactions and data that can ultimately contain everything that a user is interested in. A "home base," perhaps.

Flow boards mean to serve as a single point of contact for workflows. Various content "modules" will publish their data into the feed of the Flow board. This will allow users unprecedented (and frankly ridiculous) access to their interest graphs.

Flow boards could conceivably contain data from any part of the software that publishes to it, from discussion topics to watchlist activity to unblock requests to new Teahouse questions to new deletion discussions to requests for oversight to invitations to join Wikiprojects or even calls to action to help with Wikiproject activity.

First Person v. Third Person Views
Each user's Flow board can be (and will be) viewed in two modes: first person and third person. This is an important distiction.


 * A First Person view is when a user is looking at their own Flow board.
 * A Third Person view is when a user looks at someone else's Flow board.

The visible content will change depending on the viewing mode. Generally, in third person mode, only public content will be visible - things that one could normally get by visiting a user's contributions log and talk page together. No private data will be leaked this way (e.g., users that someone is subscribed to).

Transcluding Boards
Users should be able to transclude their personal Flow board into other pages using magic words. This would enable the Main Pages of many Wikis to also serve as dynamic content "home pages" for all users (consider transcluding Special:Flow into a column on the Main Page).

Non-User Flow Boards
There is no reason why Flow boards must be restricted to users. Consider the English Wikipedia's Signpost: each issue is ripe for having its own Flow board associated with it (which can then be transcluded into the issues themselves, much like each page's talk page currently is).

Subscriptions
In the most basic sense, subscriptions are analogous with watching. One subscribes to an element and at that point activity about that element will start flowing into one's Flow board.

The subscriptions metaphor radically expands upon the concept of "watching". Currently, users may only watch "pages" (and associated talk pages). There is no nuance or understanding exactly what one is "watching" - it is a wikitext entity only.

Subscribing creates a finer granulation which allows for more powerful combinations (especially when paired with tagging).

"Subscribe" v. "Watch"
Why a new term, you may ask? It is very simple: the verb "watch" does not work in all cases in which a subscription may be applied. One can "watch" or "guard" pages or articles, and this works, but "watching" people brings negative connotations into the mix.

Consider the following "objects" which could be made available for subscription (and common verbs used):


 * Articles (watch)
 * Discussion topics (follow)
 * User activity/contributions (follow)
 * Tags (follow)
 * Processes (e.g., requests for adminship, deletion discussions, elections) (follow)
 * Wikiprojects (join)

"Subscribe" is the only term that fits all areas and doesn't imply creepiness.

Subscribe to topic
It should be possible for a user to subscribe to an individual topic and not an entire page. Currently, users must "watch" an entire talk page in order to keep tabs on a single topic (which may be the only thing they are interested in).

Users should be able to subscribe to a topic in one of two ways:


 * 1) By commenting in the topic
 * 2) By manually choosing to subscribe to the topic

Subscribe to User
Additionally, users should be able to subscribe to other users. In the context of the User-to-User discussion module, this means that all discussions that are started on the subscribed user's Flow board will feed into the subscriber's (though in slightly different format than subscribed topics).

Example:

Mary is an experienced editor and wants to mentor Joe, who is fairly new. She subscribes to Joe. Now, when Mary visits her Flow board, she will see additional content, not directly related to her:


 * 1) New topics started on Joe's Flow board
 * 2) New topics Joe starts on other Flow boards

To reduce volume, these topics will be collapsed and not marked as "subscribed" and will fall off the stack unless Mary decides to subscribe to them.

With a watchlist/contributions module, the subscribed user's edits to articles will also flow into the feed.

Namechecking
The system should be smart about recognizing user names and not require standard wikitext ways of typing links to other users. A user should just be able to type "@username" and have the system recognize another user and react accordingly (e.g., typing "@Jorm" will insert the equivalent of " Jorm ").

Additionally, when a user is "namechecked", an Echo notification will be sent to them informing them that they have been referenced. To avoid spammyness, this should happen only once per topic visit.