import { defineConfig } from 'tidypress'
export default defineConfig({ name: 'my-site' }) Only name is required. defineConfig preserves type inference; normalization
adds defaults and rejects invalid capability keys, unsafe project paths, and
unsupported enum values.
Identity and metadata
name string required description string siteUrl string URL branding object icon and favicon public asset paths.repository object url, branch, and editPath for edit-page links.Content model
collections Record<string, TidyPressCollection> Collection key to { enabled, basePath, kind, label, display, render }.
Built-in kinds are content, writing, page, and projects. The docs
key is reserved for product documentation and does not accept kind or
collection-level render.
writing object Writing index description and entry display settings. entry.paging accepts
bottom (the default), top, none, or a boolean; entry.showTags controls
entry-page tags.
docs object sidebar groups and global docs paging placement.pages Array<string | { slug, navLabel? }> home object lab | blog | docs-writing | persona display preset.hero object enabled, role, pronunciation, lead, image, and links.Navigation and chrome
navigation.header TidyPressNavigationNode[] Recursive links, dropdowns, search, theme toggle, and project component nodes.
Nodes can target start, center, or end.
navigation.sidebar TidyPressSidebarNode[] Recursive page, link, group, separator, component, and autogenerated-directory
nodes. Groups may link their heading to an overview with page; setting
expanded to a boolean makes a group collapsible and selects its initial state.
nav NavItem[] navbar object position, hideOnScroll, width, and optional background.footer array | object menus link groups, main-band start/end slots, copyright, showCredit, credit overrides, and compact-line icon/text links. Deprecated aside maps to main.end.navPolicy object strict | relaxed validation plus maxVisibleDesktop and maxVisibleMobile visibility budgets.Presentation
typography object small, medium, or large; default and extra are accepted aliases.theme object ui object mdx.components Record<string, string> mdx.imageZoom boolean Default: true
styles string[] scripts Array<string | TidyPressScript> markdown object remarkPlugins and rehypePlugins.plugins string[] definePlugin.Search, analytics, and publication variants
search object shortcuts, excluded paths, and an optional project-local browser search provider.analytics object none, plausible, fathom, or umami plus explicit endpoint and site ID.versions Array<{ label, path }> i18n object dateLocale string dateFormat Intl.DateTimeFormatOptions Capabilities and extensions
capabilities object enable and disable lists. See the capability registry for exact keys.experimental object editor, export, and ai; commands still require explicit enable flags.extensions.docForms record sections object deprecated collections during normalization.Project path rule
Project code paths begin with ./ and resolve from the publish root. Parent
traversal is rejected. Linked styles and scripts may use public paths or absolute
URLs where their field supports them.