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¶
- Inspect the existing Cloudflare account, zone and DNS records for
cwtchconsulting.com. Preserve unrelated records and existing services. - Connect the organisation repository to both named Pages projects and verify a successful production build and its
pages.devpreview. - Add
cwtchconsulting.comin 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. - Add
docs.cwtchconsulting.comthrough the docs project's Custom domains settings. Use the target supplied by that project; do not invent a CNAME target before the project exists. - 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.