Skip to Content

Publish an App

Getting an app live has two parts: syncing the backend and publishing the clients.

What an app is made of

A Momen app has one backend and one or more clients:

PartWhat it containsHow it goes live
BackendData model, permissions, Actionflows, external APIs, AI Agents, login and payment settingsSync
ClientPages, components, frontend actions, and data bindings. Client types are Web app and Mobile appPreview, verify, then publish

A single-client project has one client, and its backend and client are configured in the same editor. In a multi-client project the backend is shared: configure it from the backend, or directly inside a client on the dev backend, and configure each client’s pages and other content in its own editor. See Build a Multi-Client App.

Sync the backend

Backend changes take effect online only after a sync. Until then, live apps keep using the last synced backend.

  • Single-client projects: click Backend in the top bar, then Sync changes, to sync the backend only. Previewing the client syncs the backend as well.
  • Multi-client projects: switch to the backend and click Sync changes in the top bar, or sync from Backend in the top bar of a client on the dev backend; previewing that client syncs the backend as well. All clients share the backend, so every live client uses the new backend config as soon as the sync completes.
⚠️

A sync cannot be undone. Before deleting or changing a table, field, or Actionflow input or output that a live client still uses, update and publish that client first, or make sure it no longer depends on it.

If a sync fails, your live app still uses the last synced backend. View the logs or report the error from the Backend panel or the failure notification, fix the problem, and sync again.

Compatibility check

Before the backend syncs, Momen checks the live and dev versions of your clients to see whether they still use backend config that this change deletes or modifies. The check runs automatically when you click Sync changes or preview a client (in a multi-client project, a client on the dev backend); you can also run it on its own with Check compatibility in a client’s Backend panel.

If the check passes, the sync goes ahead. If it finds issues, the Backend compatibility check dialog lists them by client and marks whether the live version, the dev version, or both are affected:

Affected versionImpactWhat to do
LiveThe client’s live app breaks as soon as the backend syncsUpdate and publish that client first, or make the backend change compatible
DevNothing breaks online, but the client must be fixed before its next publishClick Fix now next to the issue to jump to the problem in that client; other clients open in a new window

After fixing, click Check again. To sync despite the issues:

  • Single-client projects: click Sync. If the live version has issues, your live app may break until you preview and publish the client again.
  • Multi-client projects: if only dev versions have issues, click Sync; if any client’s live version has issues, click Sync anyway and enter the project name to confirm.

If the current editor still has real-time validation errors, fix them before you can sync.

Publish a client

Every client follows preview → verify → publish: click preview to package the client into a test build, verify it, then publish it to production.

ClientPreviewPublished toReview
Web appTest link and QR codeProduction domainNone
Mobile appTestFlight (iOS only for now)App StoreApple review

When verifying, focus on sign-in, permissions, data requests, and the main user flows, as well as how the app behaves on failure and with empty data.

Packaging takes a while. Before previewing, you can check pages and interactions with Mirror, which needs no packaging and shows changes instantly.

After changing a client, click Preview again to build a new test version, verify it, then publish.

Update a published app

What changedHow it goes live
Backend onlySync the backend
Client onlyPreview again, verify, then publish
Both backend and clientSingle-client project: preview again, which syncs the backend too, then verify and publish.
Multi-client project: sync the backend first, then publish the affected clients as soon as possible; previewing a client on the dev backend syncs the backend too

In a multi-client project, live clients start using the new backend as soon as it syncs, before their own new versions are published. Keep backend changes compatible with the old clients: for example, add new fields or outputs first and remove the old ones only after every client has been published.

Common issues

When something goes wrong, start from the stage where it happened:

  1. Backend sync failed: check the data model, permissions, Actionflows, external APIs, and AI Agent configuration.
  2. Client packaging failed: check editor validation errors, page references, and data bindings.
  3. The preview behaves differently from Mirror: check that both use the same initialization data, signed-in user, and client environment.
  4. Errors in production: confirm that publishing has completed, then inspect network requests and runtime logs.

For a complete workflow, see Troubleshoot an App. For specific messages, see the Error Reference.

Last updated on