> For the complete documentation index, see [llms.txt](https://docs.scaleflex.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scaleflex.com/portals/publishing-a-portal.md).

# Publishing a Portal

Put a Portal live, publish later changes, schedule it, and take it down again.

Nothing you build reaches visitors until you publish it. A new Portal is a **draft**: only your team can see it, and the builder keeps your work safely out of sight until you decide otherwise.

## The button in the top bar

The builder's top-right button changes with the state of the Portal, so it always offers the next sensible thing:

| You see             | It means                                                       |
| ------------------- | -------------------------------------------------------------- |
| **Publish portal**  | The Portal has never been live. This is the first publish.     |
| **Publish changes** | It's live, and you've edited something since.                  |
| **Preview page**    | It's live and up to date — nothing is waiting to be published. |

<div><figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2Fvta3xHJMrc7VpmTgWv8b%2Fimage.png?alt=media&#x26;token=3cd6abe4-82df-4f3b-bbeb-4815067a1c17" alt=""><figcaption><p>Before the first publish: <strong>Publish portal</strong>, and the short menu behind its arrow.</p></figcaption></figure> <figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2FnGLKCuzDphTzK4B58NMj%2Fimage.png?alt=media&#x26;token=0b3cebda-b1bd-42bb-b66b-691286f4d35c" alt=""><figcaption><p>Once the Portal is live: <strong>Publish changes</strong>, and the full menu — down to <strong>Unpublish portal</strong>.</p></figcaption></figure></div>

When there are changes to publish, two more buttons appear beside it: an **eye** for **Preview page**, and a **✕** for **Discard changes**.

The arrow next to the button opens the rest: **Publish portal**, **Unpublish portal**, **Update page**, **Discard changes**, **Preview page** and **View portal**.

## Previewing first

**Preview page** opens the Portal in a new tab as a visitor would see it, using a short-lived preview link. It works before the first publish, so you can check a Portal that isn't public yet.

## The first publish

Selecting **Publish portal** opens **Ready to publish?** — *Review your settings before going live*.

The first publish takes the whole Portal at once, so there's nothing to choose about scope. What you can set:

| Option                  | Does                                                                      |
| ----------------------- | ------------------------------------------------------------------------- |
| **Schedule for later**  | Publish at a specific date and time rather than now.                      |
| **Set expiration date** | Unpublish automatically after a date.                                     |
| **Notify recipients**   | Email people that it's live, with a **Notification message** of your own. |

Then **Publish**.

<figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2FVcbhre5ltZrNgGPnR4TL%2Fimage.png?alt=media&#x26;token=97a6df88-b0ec-4dd7-9e73-8a1ecdec69eb" alt="" width="375"><figcaption><p>The <strong>Ready to publish?</strong> dialog, with scheduling, expiry and notifications.</p></figcaption></figure>

## Publishing later changes

Once a Portal is live, **Publish changes** opens the same dialog with one addition — **Scope**, *Select what you want to publish*:

| Scope               | Publishes                                                 |
| ------------------- | --------------------------------------------------------- |
| **Current page**    | The page you're editing.                                  |
| **Other pages**     | Any other pages with unpublished changes, listed by name. |
| **Design & layout** | The Portal-wide styling — colours, typography, layout.    |

Each row appears only when it actually has something to publish, so an untouched Portal offers you nothing to tick.

{% hint style="info" %}
**Other pages** is never pre-ticked, deliberately: a publish shouldn't sweep up a colleague's half-finished work on a page you weren't looking at. Tick it only when you know what's in it — the dialog lists the page names.
{% endhint %}

**Design & layout** *is* pre-ticked, so a change to colours or typography publishes in one click.

## What happens next

A success screen confirms it:

* **Your portal is live!** — with the address, a **Copy** button and **View portal**.
* **Publish scheduled!** — *Goes live on \<date>*, if you scheduled it.

It also reports what else happened: how many recipients were notified, and the expiration date if you set one.

## Discarding changes

**Discard changes** opens **Discard changes?** — *Select what you want to revert to the last published version*. It takes the same three scopes, so you can throw away one page's edits without touching the rest.

Unlike publishing, **Design & layout** starts unticked here — discarding is the destructive direction, so nothing is assumed.

This reverts to what visitors currently see. It can't be undone.

## Unpublishing

**Unpublish portal**, from the arrow menu, takes the Portal offline. It returns to **draft**: the work is all still there, visitors just can't reach it.

Use it when something needs to come down now — an embargo that moved, a campaign pulled. To take a Portal out of the way permanently, [archive it](/portals/all-portals/organising-portals.md) instead.

## From the Portals list

You don't have to be in the builder. On the Portals list, a Portal's **…** menu offers **Publish** and **Unpublish** directly — useful for putting several Portals live in a row.

## Portal status

Every Portal carries one of three, shown on its card:

| Status        | Means                                                         |
| ------------- | ------------------------------------------------------------- |
| **Draft**     | Never published, or unpublished since. Not visible to anyone. |
| **Published** | Live.                                                         |
| **Archived**  | Taken out of the active list. Not reachable by visitors.      |

A Portal starts as a draft and stays one until its first publish.

{% hint style="info" %}
Portal status and page status answer different questions. The Portal's status is whether it's public at all; the dot beside each page in the page selector is whether *that page's* live version matches what you're editing. See [Pages](/portals/building-a-portal/pages.md).
{% endhint %}
