Flow/Architecture/URLs

Postulates

 * Topics are associated with a board, but possibly more than one (e.g. Feeds).


 * Topics need to be associated with a board, so that things like  and


 * Topics don't have a natural order within a page; because they can (some day) appear on multiple pages, because of infinite scroll, because of (some day) options to re-sort and filter board appearance.

Sample URLs
You can render a Flow board starting at a particular topic. (This is usually hidden if you have JavaScript enabled, because of automatic infinite scroll) http://ee-flow.wmflabs.org/w/index.php ?title=Talk:Flow_bugs &topic_list[offset-id]=050adf7af4bff00fc8b1fa163e68c4ac &topic_list[offset-dir]=fwd &topic_list[limit]=10 &workflow=050a09d20c6b34dffb6efa163e68c4ac
 * Pagination

Where this matters

 * When you view a topic, it has a link back to its Flow board, This topic was started on Sandbox  line. That link should try to load the topic in context.
 * Users want to share URLs to topics and posts
 * Users want to wiki link to topics and posts, but query string parameters make this difficult.
 * Ideally the h1 heading at the top of a permalink page would be copy-pasteable into  the same way the h1 heading of this page works as a wiki link.
 * If Flow is disabled for a page, the topics and posts for it remain in the system but there's no way to view them.

Possible additions

 * investigate writing the scroll position/pagination/magic into the URL hash, the way Gmail and other Web 2.0 apps do.
 * So if you follow a link to a different URL (such as a permalink), then use the back button, you would be returned to more or less the state you were in.
 * - this would only works if JavaScript is enabled.
 * Implement Special:Flow/ that will load any UUID and show it appropriately, even if its page is no longer Flow-enabled.
 * What happens to nowiki> and subpage links?
 * Would editing and replies work?


 * The Permalink spec in Flow Portal/Functional Specifications/Boards and Topics calls for offering alternative URLs and wikilinks in a flyout.

Future

 * Currently loading a topic loads all its posts. We may need eventually to incrementally load posts.