3.9 KiB
Cocotte (cocotte.club) Deploy Runbook
As of 2026-05-18: Cocotte site is built but not yet deployed. Prod domains
cocotte.clubandcocottehouse.comare 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
- Add
'es'(or whichever) toastro.config.mjsi18n.localesarray. - Extend
src/i18n/strings.tsSTRINGSandPAGE_HREFmaps. - Copy
src/pages/en/*.astro→src/pages/es/*.astroand changelocale="en"tolocale="es", then translate content. - Update
src/pages/index.astrosplash links if surfaced.