- Your docs, your structure — conforms to your repo, not the other way around.
- One config, full chrome — sidebars, nav, footer, edit links, version chip, announcement, and theme from one file.
- Beautiful themes out of the box — three built-in themes with full dark-mode support, plus first-class custom themes.
- Monorepo-first — built for internal docs with workspace cards, OpenAPI integration, and Liquid template support.
npm install @zpress/kit// zpress.config.ts
import { defineConfig } from '@zpress/kit'
export default defineConfig({
title: 'my-project',
description: 'Internal developer docs',
sections: [
{
title: 'Getting Started',
path: '/getting-started',
include: 'docs/getting-started/*.md',
},
{
title: 'Guides',
path: '/guides',
include: 'docs/guides/*.md',
icon: 'pixelarticons:book-open',
sort: 'alpha',
},
],
theme: { name: 'midnight' },
site: {
version: 'v1.0',
edit: { repo: 'acme/docs', branch: 'main', directory: 'docs' },
report: { repo: 'acme/docs' },
topbarCta: { text: 'Get started →', href: '/getting-started' },
},
})npx zpress dev # start dev server with hot reload
npx zpress build # build for production
npx zpress serve # preview production buildThe package is published as @zpress/kit because npm's moniker rules are overly aggressive and ban names that are similar in any way to existing packages. We will fix once we get npm to allow us to push to that namespace. If you work at npm please feel free to help out :)