On this page

Capabilities

Exact stable and experimental feature gates recognized by TidyPress.

Capabilities are a closed registry. Unknown names fail configuration validation; they are not general feature flags for arbitrary project code.

Registry

KeyScopeDefaultMeaning
docscollectiononBuilt-in docs collection and routes
writingcollectiononWriting collection and routes
pagescollectiononRoot-page collection and routes
themingfeatureonTheme switching and theme surface
themingCustomfeatureoffRequired for theme.mode: 'custom'
llmsTxtfeatureonFull published Markdown build artifact
editorexperimentaloffGuard for the unimplemented editor scaffold
exportexperimentaloffGuard for the unimplemented export scaffold
aiexperimentaloffGuard for the unimplemented AI scaffold

projects, search, rss, archive, tags, readingTime, i18n, and versioning are not capability keys. Configure those through their actual collection or feature fields.

Resolution

capabilities: {
  disable: ['pages', 'llmsTxt'],
  enable: ['themingCustom'],
}

Resolution order is baseline defaults, direct collection/experimental config, capabilities.disable, then capabilities.enable. A name cannot appear in both lists.

Collections

For built-in docs, writing, and pages, direct collection enabled values participate in capability resolution:

collections: {
  docs: { enabled: false, basePath: '/docs' },
}

Starter presets set both the public collection shape and the relevant gates.

Custom theming

capabilities: { enable: ['themingCustom'] },
theme: {
  mode: 'custom',
  tokens: {
    light: { bg: '#ffffff', fg: '#111111' },
    dark: { bg: '#0a0a0a', fg: '#fafafa' },
  },
}

Custom mode requires complete light and dark token objects. The baseline guardrailed mode remains active when the custom capability is absent.

Experimental means unavailable

The editor, export, and ai commands currently validate both a config gate and an explicit CLI flag, then exit with EXPERIMENTAL_NOT_IMPLEMENTED. Their presence reserves and tests the future interface; it is not a promise that the feature works in the current release.