Hello Gaia folks,
In the last 3 years (already!), our teams has built a dedicated front-end experience for the Firefox OS platform, mostly designed around mobile devices, and especially phones.
While Gaia has been built under various constraints, such as last minute features, time-based deadlines, hard memory constraints, various hardware and form factors... I believe our initial goal of shipping a default front-end for our platform has been reached.
The ideation process and the last years highlighted the need for Gaia to scale and adapt. Not only to the constraints mentioned above but also to FirefoxOS users, in a world where there is not only one type of user, but many users with contextual and local needs. As of today, we often take guesses without real usage statistics.
It's also clear that perceived performances need to be on pair with other mobile devices vendors. While perceived performance is not a pure user goal that will motivate the adoption of the phone, a laggy experience may demotivate it.
Lastly, our application model has been designed to behave like static installed applications. While Mozilla is primarily building a browser, which is an installed application, it is designed for the Web. And the web is not about static installed applications but ... define your web here ...
The inner set of libraries needed to achieve this architecture is not described in this document. Implementation details could and should be discussed as part of a separate set of proposals.
This proposal is about moving to hosted apps with delta updates, using simple primitives to enforce encapsulation and expose applications inner structure to the browser instead of relying on a blackbox model, getting live reports from real users for real panels usages or for A/B testing purpose, isolating the front-end as a distinct and easily replaceable component with a strong focus on perceived performance and user experience, and adapting to future hardware features/constraints.
I believe this proposal is too big to be discussed in a single mailing-list thread. So please, if you want to discuss a specific point, start a new thread to avoid chaos.