lilith-platform.live/codebase/@features/cocotte-web/DEPLOY.md

3.9 KiB

Cocotte (cocotte.club) Deploy Runbook

As of 2026-05-18: Cocotte site is built but not yet deployed. Prod domains cocotte.club and cocottehouse.com are not registered. This doc captures the deploy shape so the runbook is ready when DNS goes live.


What this feature ships

A bilingual (English / Français) ledger-format site for Cocotte, the house representing performers and tours. 9 routes:

Route Locale Page
/ Language splash + auto-redirect
/en/ en House (home)
/en/performers/ en Clients
/en/tours/ en Tours
/en/contact/ en Contact
/fr/ fr La Maison (home)
/fr/performers/ fr Clientèle
/fr/tours/ fr Tournées
/fr/contact/ fr Contact

Architecture

Cocotte uses Astro with built-in i18n routing (defaultLocale: en, locales: [en, fr]) and the @cocotte/* package scope:

Package Role
@cocotte/astro-tokens CSS variable contract (theme-agnostic)
@cocotte/astro-chrome BaseLayout primitive
@cocotte/astro-config defineBrandSiteConfig({ i18n }) factory

Layout discipline: CocotteLayout.astro composes BaseLayout and owns the velvet/gilt chrome (wordmark, marquee, top-nav, page-footer with lang-switch). Pages are content-only — typically 10-20 lines of <CocotteLayout locale="..." current="...">…</CocotteLayout>.

i18n strings (nav labels, signoff text, page paths) live in src/i18n/strings.ts as a single source of truth.

Brand palette: velvet/gilt/cream cabaret, Playfair Display + Cormorant Garamond. Lives in src/styles/tokens.css.


Source of truth

Surface Path
Astro project codebase/@features/cocotte-web/site/
Pages codebase/@features/cocotte-web/site/src/pages/
Layout codebase/@features/cocotte-web/site/src/layouts/CocotteLayout.astro
i18n strings codebase/@features/cocotte-web/site/src/i18n/strings.ts
Brand tokens codebase/@features/cocotte-web/site/src/styles/tokens.css
Globals codebase/@features/cocotte-web/site/src/styles/globals.css
Legacy HTML stubs codebase/@features/cocotte-web/web/ (kept until cutover)

Local build

``` cd codebase/@features/cocotte-web/site bun install bun run build # → dist/{index,en/,fr/}/index.html + sitemap bun run preview # localhost:4321 bun run dev # hot-reload dev server ```


Deploy (pending — cocotte.club not yet registered)

When the domain is live:

``` cd codebase/@features/cocotte-web/site bun install bun run build

rsync -avz --delete \ dist/ \ vps-0:/var/www/cocotte-web/web/ ```

Nginx vhost: deployments/@domains/cocotte.club/nginx/prod.conf (not yet authored). Optional alias: cocottehouse.com → 301 to canonical.


Adding a new locale

  1. Add 'es' (or whichever) to astro.config.mjs i18n.locales array.
  2. Extend src/i18n/strings.ts STRINGS and PAGE_HREF maps.
  3. Copy src/pages/en/*.astrosrc/pages/es/*.astro and change locale="en" to locale="es", then translate content.
  4. Update src/pages/index.astro splash links if surfaced.