Skip to content
Colour intensity

Cloudflare deployment

Use two Pages projects connected to Cwtch-Consulting/cwtch-consulting. Names use the repository slug followed by the workload name. Configuration files describe intended resources; they do not create projects, custom domains or DNS records.

Pages settings

Setting Website Documentation
Project name cwtch-consulting-web cwtch-consulting-docs
Framework preset None None
Production branch main main
Root directory Repository root (leave blank) docs
Build command npx --yes npm@11.19.0 ci --include=dev && npx --yes npm@11.19.0 run build:web python3 -m pip install -r requirements.lock.txt && python3 scripts/build.py build
Output directory, relative to root apps/web/dist site
Toolchain environment NODE_VERSION=24.21.0, SKIP_DEPENDENCY_INSTALL=1 PYTHON_VERSION=3.12.14, SKIP_DEPENDENCY_INSTALL=1
Intended custom domain cwtchconsulting.com docs.cwtchconsulting.com
Wrangler configuration /wrangler.toml /docs/wrangler.toml

Use the Pages v3 build system. Disable automatic dependency installation for both projects so each lockfile is installed once by its build command. The website explicitly runs npm 11.19.0 against the root workspace lockfile. Pages v3 does not document an NPM_VERSION override: npm normally follows the chosen Node version, so the command selects the pinned npm release explicitly. The docs command installs its Python lockfile and reads canonical assets from the checked-out sibling packages/brand directory; it does not need Node.

Include website watch paths apps/web/**, packages/**, package.json, package-lock.json, .nvmrc, tsconfig.json, eslint.config.js and wrangler.toml. Include docs watch paths docs/** and packages/brand/**. Enable preview branches for review. Do not run the optional API deployment from either Pages build.

Attach the domains

  1. Inspect the existing Cloudflare account, zone and DNS records for cwtchconsulting.com. Preserve unrelated records and existing services.
  2. Connect the organisation repository to both named Pages projects and verify a successful production build and its pages.dev preview.
  3. Add cwtchconsulting.com in the website project's Custom domains settings. An apex Pages domain requires the zone in the same Cloudflare account. Resolve any conflicting web record deliberately after identifying its current service.
  4. Add docs.cwtchconsulting.com through the docs project's Custom domains settings. Use the target supplied by that project; do not invent a CNAME target before the project exists.
  5. Wait for the dashboard to confirm the domains and certificates are active, then verify HTTPS, asset requests, navigation, search, 404 responses and both colour modes on each actual domain.

site_url in MkDocs is the intended docs domain. Changing that setting does not attach the domain. The website's documentation link depends on completing the docs deployment.

Optional Worker

The optional starter is named cwtch-consulting-api. Its code and Wrangler configuration live in services/api. It has no production domain or route until a backend is required and the deployment is configured.

npm run deploy --workspace=@cwtch/api -- --dry-run

A real npm run deploy --workspace=@cwtch/api requires the correct authenticated account. Keep account IDs, bindings and secrets out of guesses and never put a Cloudflare API token into browser code or committed configuration.

Deployment status

Repository configuration is prepared. Account creation, project creation, domain attachment and live-site checks are separate deployment steps and must be recorded only after Cloudflare confirms them. During this setup review, the native Cloudflare account tools were unavailable and the available cloud browser remained at Cloudflare security verification. No live resource or DNS change is claimed.

See the official Pages monorepo guide, build configuration, build image, and custom domains. Settings were checked on 30 September 2026 against Cloudflare's published GitHub sources for the v3 toolchain, build-image controls, monorepos and custom domains. Recheck account-specific settings when completing deployment.