Skip to main content
This reference documents every option available in the outpost-manifest.yaml file. For a quick introduction, see Getting Started.

File Location

The manifest file must be named outpost-manifest.yaml and placed in your theme’s root directory, alongside package.json.

Schema Overview

Top-Level Fields

manifest_version

Required. Must be 1. This enables future schema evolution without breaking existing manifests.

events

Required. Contains all event-related configuration.

Events Section

events.default_tags

Optional. Array of Ghost tag names applied to ALL event types when published.
Tags are strings. Invalid entries (non-strings) are silently ignored.

events.types

Required. Object where each key is an event type identifier and the value is that type’s configuration.
Type keys should be lowercase with underscores (e.g., in_person, virtual_workshop). These keys are stored on event records and used for identification.

Event Type Configuration

Each event type supports the following fields:

post_template

Required. The Ghost custom template filename (without .hbs extension) used for this event type’s posts.
This template must exist in your theme. Events using this type will have their Ghost posts set to use this template.

label

Optional. Human-readable name shown in the Outpost UI. Defaults to the type key with underscores replaced by spaces and title-cased.

tags

Optional. Array of Ghost tags specific to this event type. Merged with default_tags when publishing.

supported_fields

Optional. Array of standard field keys to show for this event type. If omitted, all standard fields are shown.
See Standard Field Keys for all available fields.

required_fields

Optional. Array of field keys that must be filled before publishing. Must be a subset of supported_fields (or standard fields if supported_fields is omitted).
If a required field is not in supported_fields, it will be ignored with a warning.

field_constraints

Optional. Object defining validation constraints for specific fields.
See Field Constraints for available constraint options.

custom_fields

Optional. Array of custom field definitions for theme-specific data.
See Custom Field Types for complete options.

messaging_states

Optional. Array of messaging states to show in the event settings. If omitted, all seven states are shown.
See Messaging States for all available states.

Standard Field Keys

These are the built-in fields available for supported_fields and required_fields:

Field Constraints

Available constraints vary by field type:

Text/Textarea Fields

Image Fields

Number Fields

Custom Field Types

Custom fields support these types:

text

Single-line text input.

textarea

Multi-line text input.

number

Numeric input with optional range constraints.

select

Dropdown with predefined options.
Select fields must include an options array. Fields without options are skipped with an error.

url

URL input with validation.

date

Date picker input.

toggle

Boolean switch input.

image

Image upload with optional constraints.

Custom Field Properties

All custom field types support these properties:
Custom field keys must not collide with standard field keys. Keys like name, event_date, access, etc. will be rejected with an error.

Messaging States

Control which messaging states appear in the event settings editor:
If omitted, all seven states are configurable.

Homepage Curation Section

Optional. Declares curated homepage regions that a publisher can fill from the Outpost UI. When a theme’s manifest includes a top-level homepage_curation key, Outpost shows a Homepage Curation screen (under Posts) where editors pick which post occupies each slot — without hand-editing tags in Ghost. homepage_curation and events are independent top-level keys in the same outpost-manifest.yaml; a theme can declare either, both, or neither.

How slots work

Each slot binds one Ghost tag to one post. The theme renders whichever single post currently carries that tag; the curation UI simply swaps which post wears it. Slot tags are ordinary Ghost internal tags — a hash- prefix maps to a # internal tag.
Homepage Curation is an early Labs feature and currently ships in the single-file manifest format. A complete worked example is bundled with the docs as cascade-homepage-curation.yaml.

Error Handling

Outpost validates manifests during theme upload and stores errors in the manifest data. Invalid parts are stripped while valid parts are kept.

Error Categories

Viewing Errors

Errors are visible in:
  • Theme settings table (warning count with info button)
  • Event editor (banner at top of form)
  • Theme upload/refresh API response

Example Error Response

Complete Example