Mozilla has a lot riding on its particular view of a web app being accepted by as many programmers as possible. To help with the task of building web apps Mozilla-style, we now have Mortar - a set of templates and tools.
Mozilla has a number of platforms in mind for its particular style of web app. You can run a Mozilla web app on the desktop using Firefox, on Android using Firefox for Android and on Firefox OS. Of course the big problem is that Firefox OS, which promises to be the biggest market, doesn't really have any hardware support at the moment. Both the desktop and the Android options also lag behind Firefox OS in the sense that many of the APIs are not implemented.
Even so the idea of creating web apps using Mozilla's APIs is an attractive one on the assumption that these have a reasonable chance of being implemented in the future and even becoming standard.
A project structure (folders for css, js, etc)
The manifest can be used to install the app so that you can test it in this mode. The choice of require.js to implement a module system is a good one but volo is far less well known. This is build on top of Node.js and it acts as a sort of management and control tool. You can use it to introduce new modules to the project and even to start a development server so that you can see your project run.
Currently there are four major app types supported:
mortar-app-stub: a minimal template that only has a little pre-built HTML (a blank canvas for any type of app)
mortar-game-stub: a minimal template that comes with some basic game components
mortar-list-detail: a template like app-stub but also includes a layouts library and a basic list-detail type interface
mortar-tab-view: a template like list-detail but the default interface is a tabbed view
If you would like to see Mortar in action then take a look at the video demo:
Last week Brendan Eich was appointed CEO of Mozilla. Yesterday he resigned that position and left the company he co-founded 15 years ago, saying "I will be taking time before I decide what to do next. [ ... ]