Localess

Draft & Publish

Nothing goes live until you say so. Localess keeps every change in Draft until you explicitly promote it to Published — giving your team a safe staging buffer built into the CMS.

Localess separates saving from publishing. When an editor saves content, it is stored as a Draft — visible only to people previewing with ?version=draft. Nothing changes on the live site. Only when an editor explicitly clicks Publish does that content become the Published version and reach production consumers.

This workflow protects your team from accidental publishes, gives editors a safe space to work in progress, and lets reviewers check content before it goes live.


The Two States

StateWho can see itHow to access via API
DraftEditors in preview mode?version=draft query parameter
PublishedProduction visitorsNo version parameter (default)

A document always has exactly one Draft state and one Published state. Saving updates the Draft. Publishing copies the current Draft into the Published slot.


How It Works for Editors

Writing and saving

Open a document in the Content editor, make your changes, and click Save (or press ⌘S / Ctrl+S). A dot indicator in the toolbar appears whenever there are unsaved changes. Saving is safe — nothing goes live until you publish.

You can save as many times as you need. Reviewers can preview your saved changes using draft mode in a connected frontend or the Localess Visual Editor.

Reviewing in draft mode

Pass version=draft when fetching content via the SDK to see your saved-but-unpublished changes:

const draft = await client.getContentBySlug<Page>('home', {
  locale: 'en',
  version: 'draft',
});

The Visual Editor connected to your frontend automatically reflects the current Draft state in real time as you type — no explicit save required for the live preview.

Publishing

When the content is ready to go live, click Publish in the document editor toolbar. Localess promotes the current Draft to the Published state. The change becomes available to production consumers typically within 30 seconds via CDN — no build step, no deploy, no code change required.

If you are not ready to publish everything at once, that is fine: only click Publish when the content is truly ready. Your draft stays in the Draft state indefinitely.


Translations Follow the Same Model

The Translations module works identically. Saved translation strings are available in draft mode. Click Publish in the Translations toolbar to make the entire current set of translations available to production.

The toolbar shows an indicator when there are unpublished changes pending so editors always know the current state before walking away.


Draft & Publish by Workflow Stage

Here is how a typical editorial team moves content through the workflow:

StageActionState after
Writer starts a draftOpens doc, adds content, savesDraft — not live
Writer shares for reviewSends a draft preview linkDraft — reviewer sees it with ?version=draft
Editor requests changesWriter edits and saves againDraft — updated
Editor approvesClicks PublishPublished — live on the site

No one needs to file a ticket, open a PR, or wait for a deploy. The writer and editor own the entire workflow end-to-end.


Frequently Asked Questions

Can I unpublish content after publishing it? Yes. Replace the published document with an empty state or a redirect page, or delete the document entirely. Deleting a document removes it from both the Draft and Published states.

Does publishing one document affect others? No. Each document is published independently. You can publish a single article without touching any other content.

Can I see what changed between my current draft and what is live? Not as a visual diff in the current UI — compare by fetching both version=draft and the default (published) response via the API and comparing the JSON.

Does Publish push changes immediately? Yes. Publishing triggers Localess to convert the Firestore document into static JSON in Cloud Storage. CDN propagation typically completes within 30 seconds.

What if I want to batch publish many changes at once? Save each document individually as you work, then publish each one when you are ready. There is no scheduled or batched publish across multiple documents in the current version.

On this page