Mobile apps (App Store & Google Play)

The same app you build in chat can live on phones three ways: installed straight from the browser, in Google Play, and in Apple's App Store. Cloudrizz handles the parts stores care about: icons, push notifications, sign-in, account deletion and a login for the reviewers.

WayWhat users getWhat you do
Install from the browserAn icon on the home screen and a full-screen app, no storeNothing. Every deploy makes the app installable.
Google PlayA store listing on AndroidDownload the mobile kit and run the Android build
App StoreA store listing on iPhoneDownload the mobile kit and run the iOS build (no Mac needed)

Installable from the browser

Every deploy gives your app a web app manifest and home-screen icons, so phones offer “Add to Home Screen” and open it like an app. Without your own icon, one is made from the app's name and theme color. Fine-tune it in cloudrizz.seo.json (your assistant can do it with update_seo_config):

{
  "siteName": "Yoga Studio",
  "themeColor": "#0f766e",
  "app": {
    "shortName": "Yoga",
    "icon": "icons/app-512.png",
    "backgroundColor": "#ffffff",
    "offline": true
  }
}
  • name and shortName: the app name and the label under the home-screen icon (defaults to siteName).
  • icon: a square PNG in your app, 512×512 or larger.
  • backgroundColor, display (standalone, fullscreen, minimal-ui or browser) and startUrl: how it opens.
  • offline: the app keeps working without a connection, showing the last version it saw. Off unless you turn it on, and turning it off again cleanly removes it from phones.
  • android and ios: link the website to your store apps (Google Play web apps, universal links, password autofill):
  • "enabled": false switches all of it off.
"app": {
  "android": {
    "packageName": "com.example.yoga",
    "sha256CertFingerprints": ["AB:CD:...:EF"]
  },
  "ios": { "appIds": ["TEAMID1234.com.example.yoga"] }
}

App Store and Google Play: the mobile kit

  1. Deploy the app to production.
  2. In the dashboard, open the app and click Download mobile kit. You get a ready iPhone and Android project with the live version of your app.
  3. Put it in a GitHub repository and run the included builds. iOS is built on GitHub's Macs and lands in TestFlight; Android produces the file you upload to Google Play.
  4. Follow the README in the kit for the store listings and review.

Your app works in the kit without changes: calls to your API, sign-in, file uploads, realtime and AI streaming all reach your live app. You need an Apple Developer account (yearly fee) and a Google Play developer account (one-time fee).

Phone features

Inside the iPhone and Android app, your pages can use the phone. The same calls are safe on the web, where they simply return nothing:

await cloudrizzNative.haptic("light")
await cloudrizzNative.share({ title, text, url })
const photo = await cloudrizzNative.takePhoto()
await cloudrizzNative.registerPush()
const user = await cloudrizzNative.signInWithApple()
Apple turns away apps that are only a website in a frame. Use at least one thing a phone does well (notifications, the camera, offline use) and design for small screens.

Push notifications

Notifications reach both iPhone and Android through your own free Firebase project. Add its service-account key as the app env var CR_PUSH_FCM_SERVICE_ACCOUNT, turn push on in the kit, and send from your server code:

await env.PUSH.send({ userId: user.id, title: "Order shipped", body: "Arrives Friday" })
  • For iPhones, upload your APNs key (Apple Developer, Keys) in the Firebase console under Cloud Messaging. Without it, iPhone notifications silently don't arrive.
  • Call cloudrizzNative.registerPush() after the user signs in, so the phone is linked to their account and send({ userId }) reaches it. The phone asks the user for permission the first time.
  • Push works in the App Store and Google Play apps, not in the installable web app.
  • Phones that uninstall the app are cleaned up automatically.

What the stores require

  • Account deletion in the app if people can sign up. Add a “Delete account” button that calls POST /_cr/auth/delete-account. See deleting accounts.
  • Sign in with Apple if you offer Google or Microsoft sign-in. It's built in, see Sign in with Apple.
  • A login for the reviewers if the app has sign-in. In the dashboard, open the app's Auth section and click Create review account.
  • Purchases of digital content generally go through Apple's and Google's own payment systems. The rules differ by country and are changing, so check them before you launch paid features.