# Getting Started With ZeroPress

ZeroPress supports three practical authoring workflows. Pick the one that matches your project, then follow the linked reference when you need the full contract details.

## Choose A Workflow

| Goal | Use | Best For |
| --- | --- | --- |
| Build a static site from Markdown files | `@zeropress/build-pages` | Documentation, GitHub Pages style repositories, simple public sites |
| Create or test a reusable theme | `@zeropress/create-theme` and `@zeropress/theme` | Theme authors and custom site design |
| Build directly from preview-data and a theme | `@zeropress/build` | AI-generated sites, admin-generated preview-data, advanced integrations |

Need command snippets first? See [Package Quick Starts](/packages/) for the shortest useful command for each public package.

## Markdown Site

Use `@zeropress/build-pages` when your source tree is mostly Markdown and public assets.

```yaml
- name: Build ZeroPress Pages
  uses: zeropress-app/zeropress-build-pages@v0
  with:
    source: ./docs
    destination: ./_site
```

Your source directory can contain Markdown pages, images, `robots.txt`, `sitemap.xsl`, favicons, and an optional `.zeropress/config.json`.

Next:

- [Build Pages](/build-pages/)
- [Build Pages Config](/build-pages-config/)
- [Static Search](/static-search)
- [CLI Tools](/cli/)
- [Package Quick Starts](/packages/)

## Custom Theme

Use `@zeropress/create-theme` to scaffold a starter theme and preview-data fixture.

```bash
npx @zeropress/create-theme --name my-docs-theme --template docs
```

Preview the generated theme locally:

```bash
npx @zeropress/theme dev ./my-docs-theme/theme --data ./my-docs-theme/preview-data.json
```

When the theme is ready, use it from Build Pages with `theme-path`:

```yaml
with:
  source: ./docs
  destination: ./_site
  theme-path: ./my-docs-theme/theme
```

Next:

- [Theme Authoring](/theme-authoring/)
- [Theme Runtime Reference](/reference/theme-runtime/)

## Direct Build Contract

Use `@zeropress/build` when you already have a `preview-data.json` file and a ZeroPress theme.

```bash
npx @zeropress/build ./theme --data ./preview-data.json --out ./dist
```

This path is useful when preview-data is generated by an admin dashboard, importer, AI tool, or custom pipeline.

Next:

- [Preview Data Reference](/reference/preview-data/)
- [Preview Data Schema](/schemas/preview-data.v0.6.schema.json)
- [Theme Runtime Schema](/schemas/theme.v0.6.runtime.schema.json)

## Current Contracts

New projects should target:

- `preview-data` version `0.6`
- `theme.json` runtime `0.6`
- Build Pages config version `0.1`

Historical schemas remain available under `/schemas/`, but they are not the starting point for new work.
