Workspace

Workspace

Running Handoff inside a client project repo, install, config, conventions, and the token pipeline.

A workspace is a client project repo (e.g. <project>/handoff/) that uses handoff-app as a CLI tool, not as something it deploys. It holds component source and build artifacts, page/doc markdown, handoff.config.*, and a design-system/ directory (the DTCG token pipeline). This is one of the two run modes. The Registry is the deployed, database-backed counterpart a workspace pushes to.

What lives in a workspace

PieceWhereCovered in
Confighandoff.config.{ts,js,cjs,json}handoff.config.* resolution
Component / pattern declarationsentries.components / entries.patterns paths (.handoff.ts/.js/.json files)Directory conventions
Page markdownpages/**/*.mdDirectory conventions
Design tokensdesign-system/tokens/{primitive,semantic,brands}/*.tokens.jsondesign-system/dist/Token pipeline
Icons / logosicons/catalog.json, logos/logo-set.jsonDirectory conventions
Local CLI/sync state.handoff/ (gitignored).handoff/ runtime state

The workspace never deploys itself

Every command that talks to a registry is explicit HTTP, driven by the CLI:

  • handoff-app fetch: pulls raw design tokens from Figma.
  • handoff-app start: runs a local, filesystem-backed preview (no database). (handoff-app dev is a Next.js-only debugging mode that builds no components.)
  • handoff-app push:all / push: pushes config, tokens, components, pages, and assets to a registry over POST /api/registry/* and POST /api/sync/upload.
  • handoff-app pull: pulls remote edits back down via GET /api/sync/changes.

Two CLI commands (prepare-runtime, vercel-build) still materialize and build a full Next.js app from the workspace; that's the deprecated v1 per-project deploy model. The registry is now its own handoff-app deployment; workspaces push content to it instead. See CLI reference for both commands' deprecation notices.

Where to go next

On this page