# Go live

> Take a ZeroDirs directory site from a local checkout to a running site on Cloudflare, one question at a time — pnpm cf:setup for the first deploy (Worker nam…

You are reading one page of the ZeroDirs documentation. ZeroDirs is a paid Astro + Cloudflare Workers starter for directory sites: every page is rendered to static HTML at build time, the site ships no client JavaScript outside `/search/`, and one file — `site.config.ts` — carries roughly 80% of the customisation.

Two things to hold on to before you act on anything below:

- `site.config.ts` is validated by a zod schema with ten cross-field rules. After any edit to it, run `pnpm check:config`; every problem is reported as `site.config.ts › <path>: <message>` and the whole file is checked at once.
- The repository ships its own `AGENTS.md` with twenty hard rules, and a machine-checked test suite behind them. If you are working inside a ZeroDirs project, read that file first — it overrides anything general you infer from this page.

Source: https://zerodirs.com/docs/agents/recipes/go-live/

---

<!-- DO NOT EDIT — generated from zerodirs/zerodirs .agents/skills/ by .github/docs/generate.ts (docs-sync.yml). Edit the source, not this page. -->

`.agents/skills/go-live/SKILL.md` — 115 lines of instruction that ship inside the starter. This page is generated from it, so it says what the skill does without republishing it.

## When an agent picks this up

The skill description, verbatim — this is the text an agent matches your request against:

> Take a ZeroDirs directory site from a local checkout to a running site on Cloudflare, one question at a time — pnpm cf:setup for the first deploy (Worker name, custom domain or workers.dev, D1, R2, migrations, deploy, admin secret), then the steps it leaves to the owner (D1 as the build source, Workers Builds and the Deploy Hook, email, payments) and how to verify each. Use when asked to deploy, go live, launch, put the site online, or set up Cloudflare for this project.

## What it walks through

1. 0. Before touching the account
1. 1. The first deploy — `pnpm cf:setup`
1. 2. The site reads D1 instead of Markdown
1. 3. Publish on approval — Workers Builds and the Deploy Hook
1. 4. Email
1. 5. Payments
1. 6. Verify
1. What not to do

## Commands it runs

```sh
pnpm check:config
pnpm cf:setup
pnpm exec wrangler login       # once; opens a browser on the owner's account
pnpm cf:setup --dry-run        # prints the plan: names, route, what will be created
pnpm cf:setup                  # does it; asks once, then runs every step
pnpm exec wrangler whoami
pnpm db:seed:remote --dataset <name> --with-images --with-favicons
pnpm build
pnpm exec wrangler deploy
pnpm cf:secrets DEPLOY_HOOK_URL
pnpm deploy
pnpm cf:secrets STRIPE_SECRET_KEY STRIPE_WEBHOOK_SECRET
pnpm db:seed:remote
pnpm cf:secrets
```

## Files it touches

`site.config.ts` · `wrangler.jsonc` · `worker-configuration.d.ts` · `src/content/listings/`

## Using it

Skills load themselves — you describe the outcome, not the skill. "Add a Compliance category with an icon and seed it" is enough for an agent that can see `.agents/skills/`; Claude Code reads `.claude/skills/`, which `pnpm skills:sync` mirrors from `.agents/` on every install. See [Working with an agent](https://zerodirs.com/docs/agents/overview/).
