Publish an App
Before publishing, use Mirror to verify pages, data, user states, and interactions. Mirror does not package the client. Packaging begins when you publish and create a pre-release build.
Pre-publish checklist
Before publishing, confirm that:
- Pages, components, and frontend actions work in the target client environment.
- Page inputs, path parameters, and query parameters are passed correctly.
- Authentication states, user roles, and data permissions behave as expected.
- The database schema, Actionflows, external APIs, and AI Agents are ready.
- Callers have been updated after any Actionflow input or output changes.
- Success, failure, and empty-data branches have been tested.
Deployment options
Single-client projects
Single-client projects provide two deployment options:
| Option | What it deploys | When to use it |
|---|---|---|
| Sync changes | Backend changes only, including the database schema, permissions, Actionflows, external APIs, and AI Agents | The backend changed, but the frontend does not need to be rebuilt |
| Publish | Both the frontend and backend | Pages, components, frontend actions, or frontend bindings changed |
After Sync changes completes, backend changes immediately affect live applications that use that backend. Publish first creates a pre-release build for testing; after verification, you can release the client to production.
Multi-client projects
Multi-client projects publish the frontend and backend separately:
- Publish in the backend editor deploys backend changes only.
- Publish in a client editor compiles and deploys the current client only.
All clients share the backend, so a backend release may affect multiple live clients. See Build a Multi-Client App for details.
Publish a Web app
Create a pre-release build
Open the publish panel and start publishing. Momen compiles the current Web client and generates a test link and QR code.

Verify the build
Use the test link to check pages, responsive layouts, authentication, permissions, data requests, and interactions. If the frontend and backend changed together, verify that frontend bindings match the latest Actionflow outputs.
Release to production
After verifying the pre-release build, click Go to Publish. When publishing completes, use the production URL to check the home page, authentication, and primary user flows again.

To use your own domain, see Use a Custom Domain. For search metadata and rendering options, see SEO for Web Apps.
Update a published app
Choose the deployment option based on what changed:
| Change | Deployment option |
|---|---|
| Backend schema, permissions, Actionflows, external APIs, or AI Agents only | Sync changes |
| Pages, components, frontend actions, or frontend bindings | Publish |
| Actionflow inputs or outputs and the frontend that calls it | Update the caller, then publish |
In a multi-client project, publish backend changes from the backend editor and publish each affected client from its client editor.
Common publishing issues
Start with the stage where the problem occurred:
- Backend publishing failed: Check the database schema, permissions, Actionflows, external APIs, and AI Agent configuration.
- Client build failed: Check editor validation errors, page references, and frontend bindings.
- The pre-release build behaves unexpectedly: Compare its initialization data, user state, and client environment with Mirror.
- Production behaves unexpectedly: Confirm that publishing completed, then inspect network requests and runtime logs.
For a complete workflow, see Troubleshoot an App. For specific messages, see the Error Reference.