> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Publishing

> Draft vs. published pages, and how autosave works.

## Draft and published states

Your landing page has two states: **draft** and **published**. You can make as many changes as you like to the draft without affecting what visitors see. When you're ready, you publish it.

| State     | Description                                                                             |
| --------- | --------------------------------------------------------------------------------------- |
| Draft     | Your current work in progress. Saved automatically. Only visible to you in the builder. |
| Published | The version visitors see when they scan the QR code. Updated only when you publish.     |

## Autosave is real, server-backed saving

Changes save automatically as you work — but this is not just a local browser draft. Within a few seconds of your very first edit, the header status cycles **"Unsaved" → "Saving…" → "Saved"**, and a real `POST /qr/` request creates and persists the QR record on the server — before you've clicked Publish at all. Every edit after that keeps the draft saved server-side the same way.

<Note>
  Because autosave is server-backed, you don't need to worry about losing work if you close the tab or your browser crashes — your draft is already saved to your account, not just to local storage.
</Note>

## Recovering an unsaved draft

If you have unpublished changes and reopen the editor for that QR code (including via `Edit Page`), the builder detects that the draft is newer than the last published version and asks what you'd like to do.

<Frame caption="The unsaved-draft prompt shown when reopening a page with unpublished changes">
  <img src="https://mintcdn.com/scanova-api/q8t3kzcRTgAP7jV0/images/v2/page-builder/publishing/draft-recovery-dialog.png?fit=max&auto=format&n=q8t3kzcRTgAP7jV0&q=85&s=fc0fc5438d430f6cc55c32bc6c7caa77" alt="Unsaved draft found dialog showing the last-saved timestamp and three options: Continue editing draft, Edit live page, and Cancel" width="1440" height="900" data-path="images/v2/page-builder/publishing/draft-recovery-dialog.png" />
</Frame>

Choose **Continue editing draft** to pick up where you left off, or **Edit live page** to start from the last published version instead.

## Previewing before publishing

* **Device switcher** — click **Mobile**, **Tablet**, or **Desktop** in the header to see how the page adapts.
* **Preview mode** — press Cmd/Ctrl+\ to toggle a preview-style canvas view. See [Keyboard shortcuts](/page-builder/keyboard-shortcuts) for exactly what this does and doesn't change.

## The publish flow

<Steps>
  <Step title="Click Publish">
    Click **Publish** in the top-right of the header. This opens a **Publish QR code** panel — not a simple confirmation dialog — with **Basics**, **Advanced**, and **QR Design** tabs, a live QR code preview, an editable name and Short URL/slug, a folder picker, and tags.

    <Frame caption="The Publish QR code panel — Basics tab">
      <img src="https://mintcdn.com/scanova-api/q8t3kzcRTgAP7jV0/images/v2/page-builder/publishing/publish-panel-clean.png?fit=max&auto=format&n=q8t3kzcRTgAP7jV0&q=85&s=2b172fe68c72caf7272d7cab5bd81067" alt="Publish QR code panel showing a QR code preview, editable name, Short URL slug field, QR Type (Dynamic QR code), Folder picker, and Tags field, with Cancel and Publish buttons" width="580" height="900" data-path="images/v2/page-builder/publishing/publish-panel-clean.png" />
    </Frame>
  </Step>

  <Step title="Review and confirm">
    Adjust the name, slug, folder, or tags if needed, then click **Publish** at the bottom of the panel.
  </Step>

  <Step title="Wait for the success state">
    The header shows **Publishing…** for a few seconds, then **Published ✓**. A success panel appears with a **Live** badge, the QR code, its live URL, and quick actions (**View live page**, **View details**, **Edit Design**, **Download**, **Copy URL**, **Share**).

    <Frame caption="The success panel shown right after publishing">
      <img src="https://mintcdn.com/scanova-api/q8t3kzcRTgAP7jV0/images/v2/page-builder/publishing/publish-success-panel.png?fit=max&auto=format&n=q8t3kzcRTgAP7jV0&q=85&s=319edf3469f04a514dd7b1be5baaf477" alt="Published confirmation panel with a green Live badge, QR code image, live URL, and action buttons including View live page, View details, Edit Design, Download, Copy URL, and Share" width="580" height="900" data-path="images/v2/page-builder/publishing/publish-success-panel.png" />
    </Frame>
  </Step>
</Steps>

Publishing takes only a few seconds. Once it completes, anyone who scans the QR code sees the new version immediately.

## After publishing

* The QR code's live URL serves the updated page; the QR code image itself never changes.
* You can keep editing in the builder without affecting the live page — your next changes become a new draft.
* Republishing works the same way each time: make changes, click **Publish** (the button reads **Update live page** once a page has unpublished changes since its last publish), and confirm.

## Checking the live page

After publishing, view the live page by scanning the QR code, or by clicking **View live page** from the success panel or the QR code's detail page.

<Tip>
  Always verify the live page on a real mobile device after major layout changes — the canvas preview is accurate, but a real device test is the most reliable check.
</Tip>

Page-builder QR codes are created the same way as other landing-page categories through the API — see [Create QR Code](/v1/api-reference/endpoint/qr_manager/create) for the request schema.

## Related

* [Keyboard shortcuts](/page-builder/keyboard-shortcuts) — the preview-mode shortcut referenced above.
* [Page security](/page-builder/page-security) — password protection, which takes effect once you publish.
* [Templates](/page-builder/templates) — saving your published page's layout as a reusable template.
