Skip to main content
The Outpost manifest system allows Ghost themes to declare what types of events they support, what fields each type needs, and what custom data they want beyond the standard set. The manifest connects your theme’s design to Outpost’s event management system.

What the Manifest Does

When you add an outpost-manifest.yaml file to your Ghost theme:
  1. Event types appear in Outpost: Publishers see a dropdown to select the event type when creating events
  2. Fields adapt per type: Only relevant fields show for each event type
  3. Custom fields are rendered: Theme-specific fields appear dynamically in the editor
  4. Validation is enforced: Required fields and the supported custom-field constraints (number ranges, URL format, select options, text length) are checked before publishing
  5. Data flows to Ghost: Custom field values are injected into the Ghost post for your theme to read

Quick Start

Create a file named outpost-manifest.yaml in your theme’s root directory (alongside package.json):
This minimal manifest:
  • Defines a single event type called “Webinar”
  • Uses the custom-webinar Ghost template for event posts
  • Shows only the fields relevant to webinars
  • Requires name, date, and platform URL before publishing
  • Adds an “event” tag to all event posts

Adding Custom Fields

Custom fields let you collect theme-specific data that isn’t part of the standard event fields. Here’s an example adding speaker information to a webinar:
Custom field values are stored in the event settings and injected into the Ghost post’s code injection, where your theme can read them.

Multiple Event Types

Define different event types with their own fields and requirements. You can mark one type as default: true to have it preselected when publishers create new events:
When publishers create an event, they select the type first, and the form adapts to show only the relevant fields.

Testing Your Manifest

After adding the manifest to your theme:
  1. Upload the theme to Ghost using the Outpost theme setup wizard
  2. Check the Manifest Status: in Labs → Theme Connect Wizard, the Themes table should show Valid for your theme
  3. Create a test event: The type selector should appear with your defined types
  4. Verify fields: Only the fields you specified should be visible
  5. Test publishing: Required field validation should block publishing if fields are empty

Viewing Manifest Errors

If your manifest has issues, Outpost will:
  • Show a count in the Manifest Status column of the Themes table, in place of Valid
  • Display a banner in the event editor
Click the info icon next to the count to see the specific problems. Common issues include:
  • Missing post_template on an event type
  • Unknown field names in supported_fields
  • Required fields not included in supported_fields
  • Custom field key colliding with a standard field name
The count is labelled as warnings, but it includes both errors and warnings, and severity does not change what happens to your manifest. Aim for Valid rather than a low count.This matters most for Homepage Curation, which only activates from a manifest that validated with zero problems. A single warning, anywhere in the file, keeps the Homepage Curation screen from appearing at all. Event types are more forgiving: the event editor keeps the parts of the manifest that passed validation and drops the parts that failed. See Error Handling for the full rules.

Refreshing the Manifest

When you update your manifest file:
  1. From GitHub: In Labs → Theme Connect Wizard, find your theme in the Themes table and click the refresh button in the Manifest Status column. Outpost re-reads the manifest from your connected repository.
  2. Re-upload theme: Upload the full theme ZIP through the setup wizard.
Changes take effect immediately after refresh, as long as the refreshed manifest validated cleanly. Existing events keep their data; the UI just adapts to the new field configuration. If the refresh reports problems, check the Manifest Status column before assuming your changes are live.

Next Steps