Firefox OS is about pushing the boundaries of what is possible with the Web on mobile and enabling entirely new segments of users to come online with their first smartphone. It's an open source mobile operating system based on Linux, open web standards and Mozilla's Gecko technology that provides a reinvention of what mobile platforms can be.
With the introduction of WebAPIs to access hardware capabilities and by offering users an intuitive, elegant smartphone experience, Mozilla believes that the Web will present great opportunities for developers to reach new audiences with excellent products.
Target audience
This set of documentation is aimed mainly at web developers and platform developers who want to learn how Firefox OS works, how to contribute to the project, and how to build their own custom versions of the software and install it on devices. For those who want to create and distribute their own web apps, the App Center and Marketplace Zone are good places to go.
The basic promise of Firefox OS
For Web/platform developers, the most important part to understand is that the entire user interface is a Web app, one that is capable of displaying and launching other Web apps. Any modifications you make to the user interface and any applications you create to run on Firefox OS will involve standard web technologies, albeit with enhanced access to the mobile device's hardware and services.
From a product perspective, Firefox OS is Mozilla's branding and support services on top of Boot to Gecko (B2G), which is the operating system product's engineering codename. The user interface of Firefox OS is called Gaia, and includes the OS's default apps and system functions.
To find out more about the platform architecture, go to our Platform guide.
Current and future plans
There are many phones available in wild, both consumer and developer models. To find out more, read the following:
- Firefox OS developer release notes: What's newly supported in each release.
- Phone guide: What phones are available.
- B2G roadmap: See where Firefox OS is headed, and when.
Release cycle
Since Firefox OS 1.2, the Firefox OS release cycle has been aligned as closely as possible with the Gecko and Firefox desktop version release cycle (6 weeks). A new Firefox OS version is released new every three months, so there will be a Firefox OS release for every two Gecko (Firefox browser core) releases.
For example. Gecko 30 is bundled with Firefox OS 1.4, bypassing Gecko 29, and Gecko 32 is bundled with Firefox OS 2.0 (was 1.5), bypassing Gecko 31.
Note: Check out our rapid release calendar to check the corresponding versions between Firefox OS and Gecko / Desktop Firefox, and read Firefox OS Release Milestones for more information on how our releases are managed.
The community
Boot to Gecko and Gaia are developed by teams of engineers inside Mozilla, plus, many external contributors from the wider Mozilla/open source community. If you want to talk to the community about any aspect of Firefox OS or Gaia development, a good place to start is our mailing lists and IRC channels, detailed in the below info box.
Join the Firefox OS community
- IRC: #fxos (learn more)
- Other IRC channels: #openwebapps, #webapi
To file bugs, use our Bugzilla system, and file bugs against the Firefox OS components. If you are not sure what component to file a bug against, feel free to ask.
Note: If you have a question or a point to raise about a specific part of the B2G/Gaia source code (for example, a specific Gaia app), you can find more specific contact details on our Firefox Modules page.
Building the operating system
The B2G operating system is based on Mozilla's Gecko rendering engine, and sits on top of a Linux kernel and userspace hardware abstraction layer (HAL) called Gonk. The Gecko talked about here is basically the same Gecko used in Firefox for Android, or Windows, or Mac OS X, etc. Gonk is basically another porting target of Gecko.
To learn how to build and install Firefox OS, consult our guide to Building and installing Firefox OS. You can find the B2G source code on Github.
Contributing to Gaia
To contribute to Gaia, you don't need much more than a solid knowledge of web development. To learn about getting Gaia up and running, consult our Quickstart guide to Gaia development.
There are a number of useful tools available to you for debugging Gaia and other web apps running on Firefox OS. To learn about these and much more, consult our guide to Hacking Gaia.
Developing apps for Firefox OS
Firefox OS apps are built using standard web technologies — HTML, CSS, JavaScript, etc. — so if you are a web developer you will also have most of what you need. There are a few special JavaScript APIs to know about, which allow you to access device hardware and key features (for example camera, gyroscope, light sensor, contacts, system alarms and notifications...), but these are all well documented on our App Center and Web Platform pages.
Note: If you are a beginner to building open web/Firefox OS apps, or if you want a concise account of the differences between web apps and traditional web pages, the best place to start is our apps Quickstart guide.
Supporting cross-Firefox OS versions
Note that when developing apps for Firefox OS, you need to bear in mind what platform versions will be available on the devices your customers will have (see our available phones table for a list.) Remember that it is not as simple to update phone platform software as it is desktop software — users tend to be at the mercy of the network providers. You therefore need to develop apps to support these versions. As an example, multiline Flexbox doesn't work on Firefox OS versions below 1.3, so you may need to use a simpler layout method or provide a fallback for older versions.
This issue should go away soon, as more consumer Firefox OS devices appear, equipped with newer versions of Firefox OS out of the box.
The current baseline platform we recommended developing for is Firefox OS 1.1.
Note: MDN's web platform reference pages include browser/platform support information, plus you can find support information for more App-specific technologies on our Apps API Reference.