User:JHernandez (WMF)/MFnext

There are 3 main layers to consider for the future of the mobile website (Opinions. Everybody has them).

Consuming content from REST services
Moving content consumption to REST services so that we can
 * share endpoints and efforts between platforms and features
 * remove the tech debt source in ApiMobileView and MobileFormatter
 * provide better features and interactions in the client (enabled by being able to use APIs from it)

Improve front-end tooling and stack
To be more effective and deliver a better product introducing a build step so that we can use modern tooling that will allow us to
 * test more easily and in an isolated way
 * user latest well maintained tools (like lessc or uglifyjs) instead of the unofficial Php versions
 * serve source maps in development and production for better debuggability
 * use uglifyjs to minify our sources and deliver ~30% smaller payloads to our users
 * pre-compile assets like templates, pre-process assets like images
 * use a module system and automatically bundle sources instead of having to manually update the dependencies between files manually

Provide a progressive webapp experience
In order to provide a faster and better product, moving the mobile website to be a website that progresses to a web application and leverages service workers for caching and an offline experience.
 * solve the cached vs cached assets issue by versioning served frontend assets
 * deliver a fast cached experience on first visit for both anon and logged in users
 * deliver an app like UX experience (better UI, fluid interactions, no blank loading pages) after the initial load
 * instant load on second visit
 * provide an offline web experience (pending research results)