75d8cbc7f7
/contact/ now uses the GHL "Dylan – Lead Form", and a new /contact/book/ page lets visitors pick the free intro call or the paid 1:1 and book it in the matching GHL calendar. Both calendars load up front so switching tabs is instant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
# 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` |
|
||
|
||
## Desarrollo
|
||
|
||
```bash
|
||
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/` al enviarse.
|