Use the EmDash admin to take an entry from its first draft to a published page. The editor keeps draft changes separate from the version visitors can see, so saving and publishing are two distinct actions.
Open a collection
Open /_emdash/admin on your site and sign in. Select a collection, such as Posts or Pages,
in the sidebar.
The collection page lists its entries. From here you can:
- select Add New to create an entry;
- search by the entry title, slug, and fields marked as searchable;
- filter by publishing state, author, byline, date, and locale;
- select entries for bulk publishing, returning to draft, or moving to Trash; and
- open Trash to restore or permanently delete an entry.
The fields and publishing features available in the editor depend on the collection’s content model. For example, a collection may support revisions, previews, taxonomies, or search.
Create and publish an entry
-
Select Add New on the collection page.
-
Complete the required fields. If the collection has a title field, EmDash uses it to suggest a slug. You can edit the slug before publishing.
-
Add the body and any supporting fields, such as an excerpt, featured image, byline, categories, or tags.
-
Select Save. The first save creates the entry as a draft and opens its permanent editor URL.
-
Review the draft. If the collection supports previews, select Preview to see the rendered page before publishing.
-
Select Publish. The saved draft becomes the live version that public content queries return.
The entry has a stable content ID and a separate slug. The ID continues to identify the same entry
if its slug changes. Templates normally use the URL-facing identifier returned by
getEmDashCollection(); the querying content guide
explains both values.
Write rich text
Portable Text fields provide a block editor for headings, paragraphs, quotations, lists, links, images, galleries, code blocks, tables, HTML blocks, and reusable sections. Installed plugins may add more blocks.
Use the toolbar to format the selected text. To insert a block, select the add-block control beside
a paragraph or type / and search for a block by name. Image and gallery blocks open the same media
picker used by image fields.
When you select an image block, its settings let you replace or remove that use of the image and set its display size, alignment, alt text, caption, and optional tooltip. Edit asset opens the underlying Media Library item, where changing or replacing the asset can affect other entries that use it. See Media Library for that distinction.
Save draft changes
After the first save, the editor autosaves changes two seconds after you stop typing. The Save button changes through Saving… to Saved so you can confirm that the server accepted the draft. Autosave replaces the current autosave revision instead of filling revision history with a checkpoint for every pause.
Select Save when you want a point in the editing sequence to remain in revision history. If a save fails, the editor keeps the unsaved fields in place and shows the error. Do not leave the page until the button returns to Saved or you have copied the unsaved work elsewhere.
For a published entry, saving changes updates its draft only. Visitors continue to receive the previous live revision. Use Preview draft to check the pending version, Live View to check the public version, and Publish changes when the draft is ready to replace it.
Changing the slug of a published entry follows the same draft flow. The public URL changes when you publish the draft, not when autosave runs.
Work with another editor
Opening an entry takes an edit lock for that entry and locale. If another person already has it open, EmDash identifies the lock holder and offers two choices:
- Open read-only shows the entry without accepting edits, so you cannot type work that will be discarded.
- Take over gives you the lock. The other person keeps what they typed, but within two minutes their editor reports that you hold the entry. Their next save is refused.
The lock is renewed while the entry is open and released when you leave the editor or close the tab. If the browser or computer closes without releasing it, the lock expires seven minutes after its last renewal.
Locks are independent for each locale, so two people can edit different translations of the same entry. A script or API client is also refused while another editor holds the lock unless it uses the documented override. See Entry edit lock for the complete API behavior.
An administrator can turn locking off for a collection under Content Types, then the collection, then Edit locking.
Publish or schedule changes
The publishing control reflects what will happen to the saved draft:
- Publish makes a new draft live.
- Publish changes now makes pending changes to a published entry live immediately.
- Schedule publication sets when a new entry becomes live.
- Schedule changes sets when pending changes replace the current live revision.
- Change schedule or Remove schedule updates an existing schedule.
- Unpublish removes the live revision from public queries and keeps an editable draft.
To schedule an entry, save it first, open the publishing menu, choose the relevant schedule action, and select a future date and time. The editor displays the time zone used for the schedule. Until that time, the current live revision stays public; for a new entry, nothing is public yet.
Node.js deployments run the scheduled-publishing sweep automatically. Cloudflare Workers require a Cron Trigger. The Cloudflare starter templates include it; existing deployments can follow Scheduled publishing to verify the trigger.
Restore a revision
Collections with revision support show Revisions in the settings panel. Expand it to see saved versions and the fields that changed between them. Select a revision to inspect its content, then select Restore if you want to use that version again.
Restoring creates a new revision containing the selected content. It does not erase the revisions that came before it, so you can still inspect the complete sequence afterward.
Translate an entry
When internationalization is enabled, the Translations panel shows the configured locales for the current entry.
-
Open the source entry and find Translations in the settings panel.
-
Select Translate for a locale that does not yet have an entry.
-
Edit the copied title, slug, body, and other translatable fields.
-
Select Save, then publish or schedule the translation when it is ready.
Each translation has its own slug, publishing state, schedule, and revision history. Use the locale selector on the collection page to view one language at a time.
Move content to Trash
Open an entry’s actions or select one or more rows on the collection page, then choose Move to Trash. Trashed entries stop appearing in ordinary content queries but remain available on the collection’s Trash tab.
From Trash, select Restore to return an entry to the collection.
Automate content work
The REST API and EmDash CLI support the same draft and publishing workflow. Collection fields belong
inside the request’s data object. An update saves a draft revision; publishing is a separate action.
Pass the latest _rev value when updating or publishing so the server rejects a stale write instead
of replacing newer work.
Use the REST API reference for request bodies, permissions, lock overrides, publishing, scheduling, restoring, and permanent deletion. Use the CLI reference for equivalent terminal commands.
Continue with Querying Content to render published entries in an Astro site, or Media Library to add and manage reusable files.