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 edit

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 edit

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 edit

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)