Reading/Web/Projects/A frontend powered by Parsoid/Q2 MVP

Here is the outcome of the spike https://phabricator.wikimedia.org/T113769 for the Q2 MVP that we're building for a mobile web front-end that uses parsoid.

Main objectives of the MVP

 * Ease of development and prototyping
 * Speed
 * Improved reading experience

Ease of development and prototyping
In order to ease development (of UI/UX) and the creation of different prototypes for features or user research, it seems like the following properties are desirable (which we don't have right now):


 * Immediate feedback when developing UIs.
 * Improve iteration time.
 * Sharing of improved or experimental work.
 * Make state of UI reproducible to improve bug fixing and UI testing.

Solutions will come in the form of:


 * Live updating UI to multiple clients on development without blowing current UI state.
 * Live updating "development cards" containing the isolated UI pieces with their different states. (Like visual feature/UI tests).
 * Fast static server serving the front-end and client cache layer.
 * Serializable app state enabling playing and re-playing of user sessions/state.

In order to enable better prototyping and rapid iteration, the following properties would be desirable (which we don't have right now):


 * Ease of development previously outlined would help with this.
 * Ease of deploying+sharing prototypes|in-progress|experimental work.
 * For better/faster feedback from stakeholders.
 * For better user research.
 * Checking prototypes|in-progress|experimental work with REAL data.
 * For better/faster feedback from stakeholders.
 * For better user research.

Solutions will come in the form of:


 * Previously outlined solutions on the "Ease of development and prototyping".
 * API driven means REAL data available when needed.
 * Static bundle means deployable anywhere really easily. No need for a server in experimental / prototyping stages.