Get Started Contributing

Set up your local environment to contribute to zpress.

Prerequisites

Steps

1. Fork and clone

gh repo fork joggr/zpress --clone
cd zpress

2. Install dependencies

pnpm install

3. Verify the build

Run the full CI check suite to confirm everything works:

pnpm lint && pnpm format && pnpm typecheck

4. Run the dev server

Start the zpress documentation site locally:

pnpm zpress dev

This runs a sync + Rspress dev server on http://localhost:6174 with file watching.

5. Understand the project

Read the project docs in this order:

  1. CLAUDE.md (repo root) -- tech stack, project structure, available commands
  2. contributing/concepts/architecture.md -- packages, sync engine, and data flow
  3. contributing/concepts/cli.md -- commands, dev server, and build pipeline
  4. Relevant standards in the Contributing overview as needed

6. Set up Claude Code (optional)

The repo includes built-in configuration for Claude Code:

FilePurpose
CLAUDE.mdPersona, project structure, tech stack, and commands
.claude/settings.jsonPostToolUse hooks that auto-format and lint TypeScript files on save
.claude/rules/typescript.mdFunctional programming rules Claude follows for all packages/**/*.ts files

Verification

Confirm all checks pass:

pnpm lint && pnpm format && pnpm typecheck

Troubleshooting

pnpm not found

Issue: Running pnpm returns "command not found."

Fix:

corepack enable

Lockfile mismatch after switching branches

Issue: Build or install fails after checking out a different branch.

Fix:

pnpm install

References