The Open Web Apps project architecture consists of the following elements:

Web-server-based installation

Apps can be installed from the server that hosts them ("self-hosting") or from a store. Mozilla launched the Firefox Marketplace in a test mode for apps in 2012. Other third-party app stores are also possible using this architecture. Apps can be free or paid. Stores can support validation of purchases to ensure that apps are run only by users who purchased them. The Firefox Marketplace will support this.

The Firefox Marketplace will support these activities:

Web runtime

While apps can run in any modern browser, many users expect a "native" experience, even for Web-based apps. The software that provides this extra capability for Open Web Apps is called the Web runtime. Currently, certain pre-release versions of Firefox come with Web runtime capability, and you have to install one of these Firefox versions to get it. When you run an app, Firefox does not visibly run as a browser. It simply provides the Web runtime in the background.

A Web runtime:

A future released version of Firefox will incorporate a Web runtime. You can try it now (September 2012) by using Firefox Beta for Windows and Mac, and Firefox Aurora (pre-beta) for Android. It is also available in the Firefox OS.

Firefox and the Web runtime have the same User Agent string, so you cannot do UA sniffing to determine if your app is running in the Web runtime. If you want to detect this, see How can my app detect that it is in the Web runtime?

The programming interface to the Web runtime is the navigator.mozApps JavaScript API.

Displaying pages in the Web runtime

The behavior of the Web runtime in displaying pages is not exactly the same as a browser. Keep the following in mind when designing your app.

Discontinued Web runtimes

An early Web runtime was available as a Firefox extension (Mozilla Labs App Runtime for Firefox), but it is now discontinued. An early Android Web runtime that used PhoneGap (also known as Soup) is also discontinued. An HTML5 JavaScript shim Web runtime that was formerly available has been deprecated.

Integrated supporting services

Mozilla provides services that work together to support the apps ecosystem.

Persona

The apps architecture integrates Persona in multiple ways:

App synchronization

Mozilla is implementing a cloud-based app synchronization service called Apps in the Cloud. This service can store all of the purchase receipts linked to a given BrowserID identity (including from non-Mozilla stores that implement BrowserID). It can also synchronize those receipts to all of a user's devices, allowing apps purchased on one device to be used on other devices without repurchasing.