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
editMoving 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
editTo 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
editIn 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)