CMT Sites Documentation

Creating a New Site

To create a new site, follow these steps:

Client defines these:

Developer Setup Steps

1. Decap Turbo

  1. Log in to Decap Turbo dashboard
  2. Add new site with project name: cmt-{brand}
  3. Get the Turbo Site ID from dashboard
  4. Add the ID to config/{brand}/hugo.toml’s [params.cms] block, alongside the hide* feature flags for this brand (hideEcommerce/hideCatalog/hideEvents/hideGuides):
    [params.cms]
    turboSiteId = "your-turbo-site-id-here"
    hideEcommerce = false
    hideCatalog = false
    hideEvents = false
    hideGuides = false
    
    This is read directly by layouts/admin/list.cmsConfig.yml when it renders /admin/config.yml — there’s no separate CMS config file to create. The CMS’s locale list is derived automatically from this same hugo.toml’s [languages.*] block, so it doesn’t need to be set here too.

2. Configuration Files

Add brand to deployment:

Hugo config:

Form submission recipients:

3. Brand Styling

File: assets/{brand}/styles/_brand-theme.scss

Define CSS variables for:

4. Content & Data Files

Content:

Data files in data/{brand}/:

5. Static Assets

Directory: static/{brand}/

6. Cloudflare Deployment

  1. Create Pages project: {brand} (sites that are named cmt-{brand} haven’t been migrated to the CMT Cloudflare account yet — see step 2 above)
  2. Connect to GitHub repository
  3. Add required environment variables:
    • HUGO_VERSION (e.g., 0.154.5)
    • NODE_VERSION (e.g., 20)
    • BREVO_API_KEY and BREVO_SENDER_EMAIL - needed for forms to send email
  4. Disable automatic deployments - we use GitHub Actions for builds instead

7. Cloudflare Turnstile

Add the new production domain to the widget’s hostname list in the Turnstile dashboard.

8. Booking API CORS

If the brand has ecommerce products, add its domain to the CORS allowlist of the CMT Booking API (an Azure App Service), directly on its CORS settings page:

Timeline

The deadline for creating a new site is 5 working days since the client provides all necessary inputs defined above. The client must inform the contractor 2 weeks in advance about the intention to create a new site.