Configuration
All configuration lives in ciderpress.config.ts at your repo root. Use defineConfig for type safety and autocompletion.
Configuration is loaded via c12. Supported file formats: .ts, .mts, .js, .mjs, .json, .jsonc, .yml, .yaml.
Canonical example
A representative config exercising the most commonly used fields. Every field has its own section below.
Top-level fields
apps, packages, and workspaces use the same Workspace shape (see Workspace) — they only differ in label and discovery order on the home page. Pick apps for things that deploy or run, packages for shared modules, and workspaces for arbitrary custom groups.
Section
Each node in sections is a Section. What you provide determines what it is:
Page — single file:
Page — inline content:
Page — async content generator:
Section — explicit children:
Section — auto-discovered from glob with landing:
Section fields
TitleConfig is either a plain string or { from: 'auto' | 'filename' | 'heading' | 'frontmatter', transform?: (text, slug) => string } for derived titles. Only Section.title accepts TitleConfig — every other title field in this reference is a plain string.
IconConfig is either a plain Iconify identifier string (e.g. 'devicon:hono') or an object { id: string, color: string } for explicit color control. See Icon Colors for available color values.
The sort field accepts:
'default' is the implicit fallback when sort is omitted. Sections (entries with children) always sort before leaf pages regardless of pin status.
Workspace
Metadata for a monorepo app, package, or custom workspace. Drives home page cards, landing page cards, and the auto-generated introduction page. The same shape is used by apps, packages, and the items of every WorkspaceGroup.
WorkspaceGroup
A named group of workspace items, rendered as a card cluster on the home page and as its own auto-generated landing page. Use apps and packages for the common cases — reach for workspaces (an array of WorkspaceGroup) only when you need custom group labels like "Integrations" or "Plugins".
CardConfig
Controls how an entry appears as a card on its parent section's auto-generated landing page.
NavItem
Explicit navigation bar configuration. Used when nav is an array instead of 'auto'.
Set nav: 'auto' to generate one nav item per non-standalone top-level section.
Feature
Explicit feature card for the home page. Replaces the auto-generated cards derived from top-level sections.
OpenAPIConfig
Configuration for OpenAPI spec integration.
sidebarLayout controls how API operations are displayed in the sidebar:
'method-path'— showsGET /userswith method badge and path in code font'title'— shows the operation summary (e.g., "List Users")
HeroAction
A call-to-action button on the home page hero section.
SidebarConfig
Persistent links rendered above or below the sidebar navigation tree.
Each SidebarLink has:
HomeConfig
Home page layout — hero eyebrow, trust strip, final CTA band, and card-grid layout for features and workspaces.
Each HomeGridConfig has:
TruncateConfig accepts title?: number and description?: number for line-clamp values.
HomeTrustConfig:
HomeCtaConfig:
SiteConfig
Site-level chrome — version chip, edit/report links, sidebar promo, topbar CTA, announcement banner, and extended footer. Every field is optional; pieces with no config render nothing.
SiteEditConfig:
SiteReportConfig:
SiteSidebarPromoConfig:
SiteCtaConfig:
AnnouncementConfig:
SiteFooterConfig:
SiteFooterColumn:
Security note — all
hrefvalues insidesite.*are validated through a safe-URL helper that rejectsjavascript:,data:,vbscript:, andfile:schemes. Relative paths, fragment anchors,http://,https://,mailto:, andtel:are allowed.
SocialLink
Social media links displayed in the navigation bar.
Built-in SocialLinkIcon values (the canonical list — see SOCIAL_LINK_ICONS in @ciderpress/config):
Capital X is a separate accepted alias for x. Any icon outside this set must be supplied as { svg: '<svg>...</svg>' }.
FooterConfig
Footer displayed below all page content.
References
- Frontmatter — per-page metadata schema
- CLI Commands — flags and behavior for every command
- Icon Colors — color values accepted by
IconConfig - Themes — registering custom themes via
themes - Workspaces — when to use
apps,packages, orworkspaces
Resources
- c12 — the config loader used under the hood