MallaDocs

Publishing

Staging and production, instant publishes and how pages are rendered and cached.

User guide

Publishing is instant at any site size. Malla freezes a version of your site, stores it on Cloudflare’s network and switches your domains to it in a single step, so visitors never see a half-published site.

What happens when you press Publish
SnapshotPages, components, classes, tokens and SEO are frozen into one immutable version.
CompileShared CSS is compiled and minified; key pages are prerendered.
StoreFiles go to R2, server workflows to the edge config.
FlipOne pointer switches every domain to the new version at once.

Staging and production

StagingProduction
Address<slug>. your Malla sites domainyour custom domains, plus a <slug>-prod fallback address
Search enginesalways blocked (Disallow: /)indexed, following your SEO settings
Who can publisheditors, admins, ownersadmins and owners
Forms and server workflowstheir own submissions and runstheir own submissions and runs; notifications sent

Press Publish in the toolbar, pick the environment and confirm. The popover shows the live address when it is done.

Roll back to an earlier publish

Every publish stays stored, so going back is the same one-step switch as publishing. The publish popover lists Recent publishes under the publish button, for the environment selected in the Staging / Production switch. Each row shows when it was published and by whom; the version visitors see has a Live badge, with "Rolled back by …" when a rollback put it there.

  1. Pick the version

    Press Publish in the toolbar, select the environment and find the version in Recent publishes.

  2. Roll back

    Press Roll back on its row. The dialog (Roll back staging? or Roll back production?) says which version will be served again. Press Roll back to confirm. The popover says Rolled back with the environment when it is done.

The 50 most recent publishes of each environment can be rolled back to, and only within their own environment: a staging publish never reaches production this way. A rollback does not add a row; to undo it, roll back to the newer publish.

A rollback restoresA rollback keeps as it is now
Pages, components, classes, tokens and SEOCMS items, and collection fields and settings
Redirects and page access rulesAssets: one deleted since shows as a missing file
Form definitionsForm submissions
Server workflows, with their schedulesNative tables, visitors and integrations

Rolling back follows the publishing rule: editors roll back staging, and production takes an owner or admin. The Roll back button is hidden for anyone who cannot use it, and viewers and content editors do not see the list.

How pages are served

StaticRendered once per publish and cached at the edge. Zero JavaScript unless something needs it.
ServerRendered per request with fresh data from server queries, still fully indexable.
IslandsOnly bound text, lists, forms and workflows hydrate, with a tiny runtime.

Each version has its own cache keys, so a new publish never serves stale pages. Pages with an access rule are always rendered per request. Links between pages are prefetched, so navigation feels instant without a single-page app.

CMS changes go live without a republish

Publishing a CMS item only re-renders the pages that read its collection, the template page and lists that query it. Changing a collection’s fields reaches the live site the same way.

Checks before publishing

The editor warns about problems that would break the live site, such as a list filtering on a field its collection no longer has.

Next: SEO and site settings, then connect your domain.