Quickstart

Get Clay’s workspace, backend, mobile app, and specifications site running locally.
1

Install prerequisites

ToolVersionWhy
Node.js>= 20Drives pnpm, Turborepo, Wrangler, and Expo CLI.
pnpm>= 11Workspace package manager. Use corepack enable if it is missing.
Xcode + iOS simlatest stableRequired only for pnpm --filter @clay/mobile ios.
Cloudflare Wranglerper-packageInstalled inside @clay/backend and @clay/specs. Do not install globally.
2

Install workspace dependencies

From the repository root:
pnpm install
This populates every workspace package, including the Fern SDK sources and the Mintlify tooling.
3

Run the backend

pnpm --filter @clay/backend dev
This starts the Cloudflare Worker locally through Wrangler. The API listens on http://127.0.0.1:8787. Inspect the runtime OpenAPI document at /openapi.json while the Worker runs.
4

Start the mobile app

pnpm --filter @clay/mobile start
The Expo app is iOS-only. Use the Expo CLI QR/device flow or run pnpm --filter @clay/mobile ios when an iOS simulator is available. Use pnpm --dir apps/mobile expo install <pkg> for any new native dependency so versions stay Expo-aligned.
5

Preview the specs site

pnpm --filter @clay/specs dev
Mintlify serves the specs at http://localhost:3000 with live reload. The site mirrors apps/specs/docs.json; update navigation in the same change as any page move.
6

Validate before shipping

pnpm --filter @clay/specs validate
pnpm --filter @clay/specs broken-links
pnpm --filter @clay/specs a11y
pnpm --filter @clay/specs format:check
validate runs Mintlify’s strict build check; broken-links scans internal Mintlify links; a11y runs accessibility sweeps; format:check is the Prettier dry-run across the authored pages.

Common gotchas

Enable Corepack and pin the version that matches package.json:
corepack enable
corepack prepare pnpm@11 --activate
Wrangler reads apps/backend/wrangler.toml for bindings. If a handler reads a binding that the TOML does not declare, deploy fails. See Environment and bindings.
Delete the local .mintlify cache and restart pnpm --filter @clay/specs dev:
rm -rf .mintlify
pnpm --filter @clay/specs dev
Add native dependencies through pnpm --dir apps/mobile expo install <pkg> so versions align with the installed Expo SDK. Never npm install inside apps/mobile.
Regenerate the SDK and typecheck:
pnpm --filter @clay/backend generate
pnpm --filter @clay/client generate
pnpm --filter @clay/client typecheck

What lives where

apps/backend

Cloudflare Worker, Hono routing, and OpenAPI export.

apps/landing

Next.js static export pitching site.

apps/mobile

Expo iOS app for capture, fit review, and next actions.

apps/specs

Mintlify specifications site — this package.
Run all apps in parallel from the repo root with pnpm dev. Turbo orchestrates each workspace package’s dev script.

Decisions

Architecture decision records — why Clay is built the way it is, and what each choice costs.

Glossary

The vocabulary shared across product, platform, and the specs site.

3D generation and Rive pipeline

How Clay’s mascot, motion assets, and 3D scenes are generated and shipped across surfaces.

Landing page section spec

The section-by-section breakdown of how apps/landing pitches Clay.