App development for Web developers

Note: The Quickstart section has been updated with a new, more focused Firefox OS app essentials article, which replaces all the previous Quickstart articles. We hope you'll find this more useful, and a quicker learning experience than the older set of articles.

If you are a Web developer and you have a website or web application that you would like to make into an installable open web app, there is technically very little that you need to do. This article runs through minimum requirements, along with the ideas to take on board about open web apps, and how they differ from standard web sites.

The minimum requirements are few:

  1. Create an app manifest.
  2. Serve the app manifest in a file with a file extension of .webapp. Set the Content-Type header to application/x-web-app-manifest+json.
  3. Publish the app, either on your own site or in an app store (or both). Publishing it yourself requires adding some code to your site to manage installing and updating the app in users' browsers.

Optional features

Philosophically, the idea of an installable Open Web app is much more than simply adding a manifest to your site. Web standards technologies can be viewed as a full-blown application platform that happens to use a browser engine for rendering user interfaces and interpreting code, and happens to use Web protocols for communicating with a server. Mozilla offers "Web runtime" executables for various platforms so that apps can run in their own window, without a browser window frame.

To "appify" a website, there are many application-specific questions to consider:

  • Should my app work when not connected to the Web?
  • How does my app use data, and how does it need to be stored?
  • Can my app's performance benefit from advanced platform features like Web Workers or WebSockets?
  • And many more

If you want to take full advantage of the capabilities of installable apps, there is plenty that you can do. For example:

  • Use responsive Web design to look good and work well on all devices.
  • Charge money for apps.
  • Provide a way to identify users.
  • Enable offline caching so the app can be used when the device is not on the Internet.
  • Store data locally using either IndexedDB or localStorage.
  • Launch the app natively (with an icon on the desktop or the home screen).
  • Use device APIs to interact with hardware, such as geolocation and orientation.
  • Give users a way to give you feedback. Mozilla's user research shows that users want to give feedback to app developers, and want to know that there is a human receiving it. They want to make suggestions and get help with problems. They may stop using an app if they have a problem and there is no way to get help with it.

Useful technologies

Here are some Web technologies that may be useful in writing installable apps. Notice that there is nothing on this list that is unique to Open Web apps!

See also

Document Tags and Contributors

 Contributors to this page: chrisdavidmills, kohei.yoshino, Sheppy, marco-c, jswisher, teoli, markg
 Last updated by: chrisdavidmills,