Files
dylanmazzei-website/README.md
T
Alejandro Veras 083443a43b Drop the white backdrop behind the lead form and add dark GHL form CSS
ghl/lead-form.css is pasted into the GHL form's Custom CSS so the embed matches the
dark contact page. In light mode the form sits on a dark panel so it stays readable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:38:09 -04:00

3.8 KiB
Raw Blame History

dylanmazzei.com

Sitio de Dylan Mazzei, Founder & Operator. HTML estático generado con un script de Node sin dependencias.

Estructura

src/layout.mjs        Layout compartido: <head>, nav, footer, iconos y helpers
src/pages/*.mjs       Una página por archivo (texto literal del documento de contenido)
src/service.mjs       Bloques compartidos de las páginas de servicios de Consulting
static/               Se copia tal cual a dist/ (CSS, JS, imágenes, favicon)
build.mjs             Genera dist/ + sitemap.xml + robots.txt + 404.html
Ruta Archivo
/ src/pages/home.mjs
/about/ src/pages/about.mjs
/portfolio/ src/pages/portfolio.mjs
/consulting/ src/pages/consulting.mjs
/consulting/marketing/ src/pages/marketing.mjs
/consulting/business-setup/ src/pages/business-setup.mjs
/consulting/business-optimization/ src/pages/business-optimization.mjs
/consulting/supply-chain/ src/pages/supply-chain.mjs
/consulting/cybersecurity/ src/pages/cybersecurity.mjs
/consulting/education/ src/pages/education.mjs
/consulting/fractional/ src/pages/fractional.mjs
/contact/ src/pages/contact.mjs
/contact/book/ src/pages/book.mjs
/press/ src/pages/press.mjs

Idiomas

El sitio sale en inglés (/), español (/es/) y árabe (/ar/, de derecha a izquierda), con selector EN · ES · AR en la barra de navegación, hreflang en cada página y un sitemap.xml multilingüe.

Las páginas se escriben en inglés. Al construir, build.mjs genera las versiones traducidas sustituyendo cada texto por su traducción de src/i18n/es.json y src/i18n/ar.json (clave = texto en inglés). Los textos que ponen los scripts del navegador están en JS_STRINGS (src/i18n.mjs). Los ajustes de diseño para árabe están en static/assets/rtl.css.

Si cambias un texto en inglés, su traducción deja de coincidir y esa frase se ve en inglés en /es/ y /ar/. El build lo avisa; para listar lo que falta:

node scripts/i18n-extract.mjs              # cuántos textos faltan por idioma
node scripts/i18n-extract.mjs es falta.json  # los textos en español que faltan, para traducir
npm run build -- --strict                  # falla si falta alguna traducción

El formulario y el calendario de GoHighLevel se muestran tal como están configurados en GoHighLevel (en inglés).

Desarrollo

npm run build     # genera dist/
npm run dev       # build + servidor local

Deploy en Vercel

Importa el repo en Vercel. vercel.json ya define el build (npm run build), la salida (dist) y las URLs limpias con slash final. No hace falta configurar nada más.

Pendientes de contenido

  • Press: falta el link del artículo de Gulf Insider y confirmar su titular exacto (FEATURE en src/pages/press.mjs).
  • Korrith: falta el cargo de Dylan (el tercer campo, vacío, en src/pages/portfolio.mjs).
  • Páginas fuera del alcance actual: Playbook y Poetry no forman parte del sitio. Sus secciones se muestran sin botón; si se crean esas páginas, se añade el botón con su texto original del documento.
  • Formulario y agenda (GoHighLevel): los IDs están en SITE.ghl (src/layout.mjs). En GoHighLevel, el formulario "Dylan – Lead Form" debe redirigir a https://dylanmazzei.com/contact/book/?submitted=1 al enviarse. Sin ?submitted=1, /contact/book/ muestra un aviso para llenar el formulario en vez de los calendarios (es solo un filtro en el navegador: los calendarios de GHL siguen siendo públicos, así que el cobro y la disponibilidad se controlan en GHL). La página no se indexa ni sale en el sitemap. El estilo oscuro del formulario vive en GHL: pega ghl/lead-form.css en el formulario (Styles → Custom CSS).