Quick Start

Install

pnpm add ciderpress

ciderpress requires Node ≥24. Peer dependencies are @rspress/core, react@19, and react-dom@19 — pnpm installs these automatically; npm classic and yarn classic users must install them explicitly.

Initialize

Run ciderpress setup for an interactive walkthrough, or create a ciderpress.config.ts manually at your repo root:

import { defineConfig } from 'ciderpress'

export default defineConfig({
  title: 'My Project',
  description: 'Project documentation',
  sections: [
    {
      title: 'Getting Started',
      path: '/getting-started',
      include: 'docs/getting-started/*.md',
    },
  ],
})

Add another section to the sections array that auto-discovers pages from a directory:

// inside the sections array
{
  title: 'Guides',
  path: '/guides',
  include: 'docs/guides/*.md',
  icon: 'pixelarticons:book-open',
}

Every .md file matching the glob becomes a page under /guides/.

Configure the site chrome

Tell ciderpress about your repo so visitors get a real "Edit this page" link, a version chip in the topbar, and a topbar CTA:

// ciderpress.config.ts
export default defineConfig({
  // ...
  site: {
    version: 'v1.0',
    edit: { repo: 'acme/docs', branch: 'main', directory: 'docs' },
    report: { repo: 'acme/docs' },
    topbarCta: { text: 'Get started →', href: '/getting-started' },
  },
})

Every field is optional — pieces you don't configure render nothing rather than placeholder content. See the Configuration reference for the full site.* surface (sidebar promo, announcement banner, footer columns, etc.).

Start the dev server

ciderpress dev

This copies and processes your source markdown into the .ciderpress/content/ build directory, starts a file watcher for live reload, and launches the dev server. Open the URL printed in the terminal to see your site.

Pass --headless for non-interactive shells (CI, Docker, nodemon) — the default Ink TUI requires a real TTY.

Commands

CommandPurpose
ciderpress setupCreate a starter config and generate SVG assets
ciderpress devStart the dev server with live reload
ciderpress buildBuild the static site for production
ciderpress servePreview the production build locally
ciderpress syncSync source files into .ciderpress/content/
ciderpress checkValidate config and check for broken links
ciderpress diffShow changed files in configured source directories — useful for CI ignoreCommand
ciderpress draftScaffold a new documentation file from a template
ciderpress cleanRemove build artifacts, synced content, and cache
ciderpress dumpPrint the resolved site structure as JSON

Project structure

After running ciderpress dev, the .ciderpress/ directory is created:

your-repo/
├── docs/                       # Your source markdown
│   ├── intro.md
│   └── guides/
│       └── _meta.json          # Optional: sidebar order/labels per folder
├── ciderpress.config.ts        # Site configuration
└── .ciderpress/                # Generated — add to .gitignore
    ├── content/                # Synced pages + Rspress-consumed _meta.json files
    │   └── _nav.json           # Top-nav definition consumed by Rspress
    ├── public/                 # Static assets
    ├── dist/                   # Build output
    └── cache/                  # Build cache

Inside .ciderpress/content/, sidebars are driven by _meta.json files placed alongside the markdown, and the top nav comes from _nav.json at the root — those are what Rspress reads. Runtime artifacts for the UI live under .ciderpress/content/.generated/ (workspaces.json, scopes.json); sidebar.json and nav.json there are debug snapshots only.

If you skipped ciderpress setup, add .ciderpress/ to your .gitignore manually.

Next steps