KaiOS

Migrating KaiOS Apps to Cloud Phone
KaiOS developers can easily migrate their web apps to Cloud Phone with minimal changes.
Both KaiOS and Cloud Phone run web apps on feature phones. KaiOS is an operating system forked from Firefox OS that uses the Gecko rendering engine. Cloud Phone is a Chromium-based remote browser service available on budget feature phones that run on a real time operating system (RTOS).
Packaged vs Hosted
KaiOS has two app types.
Packaged apps are ZIP files that contain all the HTML, CSS, and JS.
Hosted apps are web apps available via an HTTPS URL.
Both app types are installed via the KaiStore (JioStore in India). Since all required code is bundled into a ZIP, packaged apps easily work offline. Hosted apps can work offline, but require a service worker similar to a progressive web app (PWA). Unlike packaged apps, hosted apps can be updated instantly without submitting new builds to each app store.
All Cloud Phone apps are rendered on servers and accessed via an HTTPS URL, similar to hosted apps on KaiOS. Packaged apps must be hosted to work on Cloud Phone.
Rendering Engine
Cloud Phone uses Chromium (currently Chromium 128) released in August 2024. New Chromium releases are regularly incorporated into Cloud Phone after a validation period. As a result, you do not need to worry about backwards compatibility or supporting a nearly decades old browser. The Chromium version can be parsed from the User-Agent
header, in this example Chrome/122.0.6261.111
from April 2024 on a Nokia 110 4G.
Mozilla/5.0 (Cloud Phone; Nokia 110 4G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.111 Mobile Safari/537.36 Puffin/12.1.1.46653FP
Since KaiOS descends from Firefox OS, it uses the same Gecko rendering engine as the Firefox web browser. The KaiOS version corresponds to the Gecko version.
KaiOS Version | Gecko Engine | Release Date |
---|---|---|
KaiOS 1.0 | 37 | March 2015 |
KaiOS 2.5 | 48 | August 2016 |
KaiOS 3.0 | 84 | October 2020 |
KaiOS 4.0 | 123 | N/A |
Because the rendering engine is such a critical part of the operating system, it is not updated independently of the OS. The vast majority of KaiOS devices run v2.5 based on Gecko 48, released back in 2016.
Migration
Required to build a KaiOS app for Cloud Phone
- Remove the
-moz-
prefix from CSS properties, i.e.-moz-user-select
- Remove the
moz
prefix from event handlers, i.e.mozorientationchange
- Remove calls to
navigator.b2g
andnavigator.moz
APIs - Adapt designs for fullscreen QQVGA and QVGA screens
Tips to further optimize for Cloud Phone
Manifest
KaiOS apps declare the permissions they need in a manifest.webapp
(KaiOS 2.5) or manifest.webmanifest
(KaiOS 3.0) file. Cloud Phone widgets do not need a manifest file.
Features
Cloud Phone supports many standard Web APIs and capabilities including:
- Microphone
- Storage Manager
- Volume Manager (non-standard)
Cloud Phone does not provide KaiOS’ non-standard APIs like systemXHR
, Audio Channels, Alarms, or TCP/UDP Sockets. Additionally, KaiOS 2.5 restricts the use of Web Components behind the moz-extremely-unstable-and-will-change-webcomponents
permission while Cloud Phone natively supports Web Components and the Shadow DOM.
Offline Support
Cloud Phone requires an active internet connection. Your app does not need to support offline usage.
Additional Considerations
Traffic Origination
Cloud Phone widgets run on servers while KaiOS apps run on the user’s device. Requests made from Cloud Phone originate from CloudMosa data centers, with the user’s IP address included in the X-Forwarded-For
header. You may need to adjust analytics services to properly reflect the user’s IP address including IP-derived information like geolocation and network type.
Performance Optimization
Cloud Phone servers have significantly more resources (i.e. RAM, CPU) than KaiOS phones that typically have 256mb (KaiOS “Lite”), 512mb (most common), or 1GB (KaiOS 3.0+) of RAM. Your KaiOS app should perform similar, or better, on Cloud Phone under stable network conditions.
Responsive Design
All KaiOS phones have the same screen resolution (QVGA; 240x320) and same orientation (portrait), with the exception of the JioPhone 2 that has a landscape display. Cloud Phone is designed to run on devices with varying screens, including QQVGA and QVGA. You should adapt your app using responsive design to ensure it displays properly on screens of all sizes.
Icons
Both Cloud Phone and KaiOS suggest circular or rounded rectangle icons with similar padding. Resize app icons to 80x80 pixels and upload to the Cloud Phone developer portal.
Testing
Testing KaiOS apps varies based on OS version, and developer tools are available on a limited number of devices. You can test Cloud Phone widgets for free using the web-based Cloud Phone Simulator, or enable developer mode on any device. Developers can also contact CloudMosa to request a reference device.
Summary
Cloud Phone is a new and fast-growing platform that KaiOS developers can easily distribute their apps on. Both KaiOS and Cloud Phone target T9 feature phones that use D-pad navigation, and both are available in emerging markets around the world. Register for the Cloud Phone Developer Program and start developing for Cloud Phone today!