# BewPro Master Roadmap

> **Source of truth** para los frentes de trabajo de BewPro — la marca en lanzamiento que comercializa los productos del sistema CD-System.
>
> **Estado al iniciar este doc**: ~30 clientes reales validando productos via cuentas Airtable, primer canje real (keycut.bewpro.com), 1 campaña de Google Ads activa (Restaurant-Bar), infra dual-VPS operativa.
>
> **Goal**: planificar y secuenciar los esfuerzos de los próximos 3-6 meses sin caer en *premature scaling*.

---

## Frame estratégico

| Pregunta clave | Respuesta orientadora |
|---------------|----------------------|
| ¿Estamos en validación o escala? | **Validación con tracción** — hay señal pero falta protocolo replicable |
| ¿Cuál es el bottleneck? | Convertir validación a revenue **repetible** (no hand-crafted) |
| ¿Cuál es el riesgo principal? | Construir infra de escala antes de tener demanda probada → quemar runway |
| Approach de validación | **Ads first** — lanzar las 3 ads, recolectar data 2 semanas, después armar paquete derivado de lo que efectivamente convierte |

---

## Los 12 frentes — clasificación final

| # | Frente | Eje | Tipo | Impacto | Esfuerzo | Horizonte |
|---|--------|-----|------|---------|----------|-----------|
| 1 | Onboarding Leandro (junior multi-frente) | Talent | Op | Alto | Bajo (decisión) | NEXT |
| 2 | Paquete replicable de lanzamiento | Product+Growth | Valida | Muy Alto | Medio | NEXT (post-data) |
| 3 | **Analytics + Hotjar + Dashboard product** | Product | Op | Alto | Bajo (½ día) | **NOW** ⚡ |
| 4 | User portal (gestión subs bewpro.com) | Product | Escala | Alto | Alto | NEXT |
| 5 | Optimización modulos (250 productos) | Product | Escala | Alto en volumen | Muy alto | LATER |
| 5a | **JSON imports masivos: audit + canonicalizar** | Product | Op | Medio | Medio | NEXT (prereq de #5/#7) |
| 6 | SEO productos + **GEO (LLM SEO)** | Growth | Escala | Alto orgánico | Medio | NEXT |
| 7 | Onboarding con IA (agente para data+JSON) | Product | Escala | Medio→Alto | Alto (R&D) | LATER |
| 8 | reCAPTCHA en contact-form (CD + BP) | Security | Op | Medio | Bajo | **NOW** ⚡ |
| 9 | **Marketing launch — 3 ads + checklist progresivo** | Growth | Valida | Muy Alto | Medio (3 ads) | **NOW** |
| 10 | Escalabilidad infra (clusters, docker, no-WHM) | Infra | Escala | Bajo hoy | Muy alto | LATER (12+ meses) |
| 11 | **Github CI fix (run deploy failed)** | Ops/DevEx | Op | Alto unblock | Bajo | **NOW** ⚡ |
| 12a | **Legal — TOS, Privacy, Refund Policy** | Compliance | Op | Alto | Medio | **NOW** |
| 12b | Sistema de soporte (tickets/mail/tenant) | Ops | Escala | Alto | Medio | NEXT |

**Leyenda**:
- **NOW** = próximas 2 semanas
- **NEXT** = mes 1-2
- **LATER** = mes 3+ (subordinado a validación de NOW+NEXT)
- ⚡ = quick win

---

## Make-or-buy crítico: #1 Junior vs #7 IA Agent

Ambos cubren scope similar (recopilar info → ensamblar JSON import). Decisión:

| Dimensión | #1 Junior | #7 IA Agent |
|-----------|-----------|-------------|
| Costo inicial | Bajo (sueldo) | Alto (R&D 1-2 meses) |
| Costo recurrente | Alto (sueldo) | Bajo (API calls) |
| Capacity | 1 persona | Escala con clientes |
| Tareas humanas (soporte) | ✅ excelente | ❌ no apto |
| Tareas mecánicas (JSON) | ✅ ok | ✅ ✅ excelente |
| Time to deploy | 2-3 sem | 1-2 meses |

**Decisión secuencial híbrida**:
- **Mes 1-2**: Leandro hace TODO manual (incluye JSON). Validamos flow real.
- **Mes 3+**: IA agent en R&D mientras Leandro opera
- **Mes 4+**: IA agent reemplaza la parte mecánica → Leandro queda para soporte humano + customer success + edge cases

---

## Dependencias entre frentes (actualizado)

```
#3 Analytics ────────────────────► #9 Marketing (datos de ads)
                                  ▲
                                  │
#11 Github CI ──── unblock devs ──┘

#9 Marketing (3 ads NOW) ─────► #2 Paquete (derivado de data real)
                              ─────► #5 Optimizar 250 (necesita protocolo de #2)
                              ─────► #6 SEO (necesita LP templates de #2)

#5a JSON canonical ──────────► #5 Optimizar (puede empezar bulk)
                            ──────► #7 IA agent (sabe qué generar)

#4 User portal ──────────────► #7 IA agent (la IA actúa sobre el portal)

#1 Leandro requiere:
  • Repo Developments (en progreso por Juan) ✓
  • Espacios colaborativos (pendiente)
  • Scope claro: priorizar 2-3 funciones (NO las 5 a la vez)

#12a Legal TOS ──────────────► #9 Marketing (sin TOS, ad targeting limitado)

#10 Infra escalabilidad ←── solo si llegamos a 1500 tenants (threshold real)
                            (hoy ~45, ~33× margen)
```

---

## Plan de ejecución por horizonte

### NOW — próximas 2 semanas

| Orden | Frente | Estimado | Doc deep dive |
|-------|--------|----------|---------------|
| 1 | ~~**#11 Github CI**~~ ✅ DONE 2026-05-02 (deploy.yml) + 2026-05-04 (frontend PR workflow v2) | 30 min + 1 hr | `02-github-ci.md`, `02b-frontend-pr-workflow.md` |
| 2 | ~~**#8 reCAPTCHA**~~ ✅ DONE 2026-05-02 | 3 hs | `04-recaptcha.md` |
| 3 | **#9 Marketing** — completar las 3 ads (Personal Brand + Real Estate restantes) | 2-3 días | `05-marketing-launch.md` |
| 4 | ~~**#3 Analytics** — Hotjar + dashboard product analytics~~ ✅ Sprint técnico DONE 2026-05-04 | ½ día | [`01-analytics-hotjar.md`](01-analytics-hotjar.md) |
| 5 | **#12a Legal** — TOS, Privacy, Refund Policy | 2-3 días | `12a-legal.md` |

### NEXT — mes 1-2

| Orden | Frente | Doc |
|-------|--------|-----|
| 6 | **#2 Paquete replicable** (derivado de data de ads) | `03-paquete-lanzamiento.md` |
| 7 | ~~**#5a JSON canonical audit**~~ ✅ Sprint 1 técnico DONE 2026-05-05 (audit + validator) | [`05a-json-imports.md`](05a-json-imports.md) |
| 8 | ~~**#12b Sistema de soporte**~~ ✅ Sprint 1 DONE 2026-05-06 (acelerado a NOW por urgencia con clientes pagantes ya entrando) | [`12b-soporte.md`](12b-soporte.md) |
| 9 | ~~**#4 User portal MVP**~~ ✅ Sprint 1 + Sprint 2 DONE (2026-05-05 + 2026-05-06, acelerado a NOW) | [`06-user-portal.md`](06-user-portal.md) |
| 10 | ~~**#6 SEO + GEO**~~ ✅ Sprint técnico DONE 2026-05-05 (acelerado a NOW) | [`06-seo-geo.md`](06-seo-geo.md) |
| 11 | **#1 Leandro** | `08-leandro-onboarding.md` |

### LATER — mes 3+

| Frente | Pre-condición |
|--------|---------------|
| **#5 Optimizar 250** | Protocolo de #2 + #5a completados + batch piloto exitoso |
| **#7 IA agent** | #4 user portal con tracción + #5a JSON canónicos |
| **#10 Infra docker / sin WHM** | Threshold real: ~1500 tenants (hoy 45, 33× margen) |

---

## Notas estratégicas clave

### Por qué "ads first" antes de "paquete first"
Aprendizaje real > suposiciones. Lanzar las 3 ads con LPs actuales y recolectar data 1-2 semanas nos da:
- **Qué keyword convierte** (no qué keyword creemos)
- **Qué copy resuena** (no qué copy escribimos en abstracto)
- **Qué precio tiene push-back** (no qué precio asumimos)

El paquete replicable (#2) sale **derivado** de esa data, no inventado a priori.

### Hard rules para no caer en premature scaling

| Regla | Razón |
|-------|-------|
| **No avanzar a LATER sin completar NOW + NEXT** | Construir #5/#7/#10 sin haber validado #2/#9 = quemar recursos |
| **No contratar Leandro sin scope claro** | Sin #2 documentado, junior hace de todo y nada |
| **No iniciar #2 sin data de ads** | Construir paquete sobre suposiciones = optimizar lo equivocado |
| **#9 Marketing a ritmo lento y validable** | Mejor 3 ads de $300/día con buena medición que 1 ad de $5000/día |
| **#10 NO tocar infra docker hasta señal real** | 33× margen de capacity actual |

---

## Frente 12 ampliado

### #12a — Legal (NOW)
Sub-tareas:
- Términos y Condiciones de uso
- Política de Privacidad (GDPR/LGPD si vendés fuera AR)
- Política de Cookies (Google Ads obliga)
- **Política de Refund** ("Ante customer insatisfecho, devolución de pago" — minimiza riesgo legal y comercial)
- Modelo contable de canjes (cómo se factura un canje técnicamente)

### #12b — Sistema de soporte (NEXT)
Decisión arquitectónica pendiente. Opciones:

| Opción | Pros | Contras |
|--------|------|---------|
| **Built-in en bewpro** (módulo tickets) | Control total, integrado con tenants | Tiempo dev (semanas) |
| **Help Scout / Crisp** (SaaS) | Rápido, profesional | $30-100 USD/mes recurring |
| **Email único + WhatsApp Business** | Cero costo, ya operativo | No escala bien >50 clientes |
| **Híbrido**: WhatsApp + Help Scout | Balance velocidad/escala | Mantener 2 canales |

**Recomendación inicial**: WhatsApp Business + email `support@bewpro.com` ahora. Migrar a Help Scout cuando >30 tickets/semana.

---

## KPIs macro

| Métrica | Baseline actual | Goal 3 meses |
|---------|----------------|--------------|
| Clientes pagantes (Stripe) | 0 (todos canjes/Airtable) | 10-15 |
| Sites activos en producción | ~45 + keycut | 70-80 |
| Productos validados (campaña + métrica) | 1 (Restaurant-Bar en marcha) | 5-7 cores |
| CAC | desconocido | <$50 USD |
| Conversion rate landing → checkout | desconocido | >2% |
| Time to provision (compra → live) | ~5 min con paralelismo | igual o mejor |
| Tickets soporte/semana | ~0 (no formalizado) | <10 manageable |

---

## Cómo trabajar este roadmap

1. **Master doc** (este archivo) = source of truth de prioridades + estado macro
2. **Deep dive docs** (`01-...`, `02-...`) = profundización por frente, una sesión por doc
3. **Decisions log** (`decisions-log.md`) = decisiones clave con rationale, para no re-debatir
4. Cada deep dive cierra con: situación actual + gap + hitos + KPI + costos + riesgos

**Cadencia sugerida**:
- Review semanal del master (15 min) — actualizar status de cada frente
- Deep dive cuando un frente entra en ejecución
- Decisions log cada vez que se posterga/cambia prioridad

---

## Estado actual (snapshot)

| # | Frente | Status |
|---|--------|--------|
| 11 | Github CI | ✅ DONE 2026-05-02 (deploy.yml: secrets + 1m11s OK [deep dive](02-github-ci.md)) + 2026-05-04 (frontend PR workflow v2: staging-frontend + branch fija acumulada + **sincronización bidireccional cd-system ↔ cd-frontend-dev** [deep dive](02b-frontend-pr-workflow.md), [doc operativo](../infrastructure/06-frontend-pr-workflow.md)) — **PENDIENTE**: setear secret `CD_FRONTEND_DEV_PAT` en cd-system para activar sync inverso |
| 8 | reCAPTCHA | ✅ DONE 2026-05-02 — v3 activo en CD + BP, auto-inject ready para tenants ([deep dive](04-recaptcha.md)) |
| 9 | Marketing — Restaurant-Bar | 🔵 Ad creado en draft, falta lanzar |
| 9 | Marketing — Personal Brand | ❌ Plantilla lista, sin crear ad |
| 9 | Marketing — Real Estate | ❌ Plantilla lista, sin crear ad |
| 3 | Analytics | 🟢 Sprint 1 + 2 técnicos ✅ DONE 2026-05-04 — Hotjar instalado (enabled OFF, pendiente Site ID del founder) + 4 eventos GA4 custom activos (cta_click, form_submit_attempt, scroll_depth_25/50/75/100, outbound_click) sin modificar vistas individuales [deep dive](01-analytics-hotjar.md). Auditoría GA4 documentada (qué reportes mirar). Pendiente: form_submit_success server-side + Looker dashboard |
| 12a | Legal | 🟡 Sprint 1 técnico ✅ DONE 2026-05-04 (4 pages: terms+privacy+cookies+refund con contenido draft, banda legal en footer de los 18 demos, 5/5 tests pass [deep dive](12a-legal.md)). Pendiente: revisión legal profesional humana + estilizado por-demo opcional |
| 12b | Soporte | 🟢 Sprint 1 técnico ✅ DONE 2026-05-06 — Sistema de tickets integrado a `/my-projects/support` (cliente: bandeja + nuevo + responder + close) y `/admin/support` (staff con permiso `support.manage`: bandeja con filtros + counters + dashboard métricas + responder + resolve + cambiar status/priority). 4 mails (opened/staff-reply/client-reply/resolved) + Slack alerts en nuevos tickets. Module canónico `app/Modules/Support/`. Reemplazados los 3 mailto del portal cliente por links al ticketing. [deep dive](12b-soporte.md). Pendiente: dar permiso a Leandro + Sprint 2 (assignment, attachments, email forwarder, tests) |
| 2 | Paquete replicable | ❌ A iniciar con data de ads |
| 5a | JSON imports canonical | 🟢 Sprint 1 técnico ✅ DONE 2026-05-05 — comando `bewpro:validate-json` con schemas canónicos para cores + provisions [deep dive](05a-json-imports.md). **Hallazgos**: 0 errores en cores, 1 JSON inválido en provisions (provision-ofinita.json con conflict markers), 14/24 cores con shape incompleto (faltan description/tagline/demo_url/seo), 2 cores con content embedido (scope violation). Pendiente: canonicalización masiva (decide marketing) + tipar seeds |
| 4 | User portal | 🟢 Sprint 1 + Sprint 2 ✅ DONE (2026-05-05 + 2026-05-06) — Auth low-friction live en bewpro.com (Google OAuth + email/password), rol Spatie `Client`, refactor a módulo canónico `app/Modules/Clients/`, vista detalle (`/my-projects/{id}`) con próximo cobro + suscripción + acciones, billing history embedded vía Cashier `$user->invoices()` con dompdf, 4 emails lifecycle con CTA primary "Ir a mi panel", auto-link de TPs huérfanos en cron sync (cada 10 min), `bewpro:retry-failed-projects` para reintento manual, 12 tests escritos, dompdf instalado, casos reales resueltos (coke 2 TPs huérfanos vinculados, surnuevonorte limpieza duplicado fantasma + fix preventivo en webhook), 9 demos provisionados como compras reales para Leandro vía pipeline. NO se expone server/cpanel/IDs raw al cliente (regla anclada). [deep dive](06-user-portal.md). Sprint 3 pendiente: marketplace embedded + profile + notifications in-app + setup DB testing + Lighthouse |
| 6 | SEO + GEO | 🟢 Sprint técnico ✅ DONE 2026-05-05 — sitemap.xml dinámico + robots.txt mejorado + llms.txt + llms-full.txt para GEO/LLM SEO. MetaTagsHelper centralizado y completo (OG, Twitter Cards, canonical, geo, JSON-LD) [deep dive](06-seo-geo.md). Pendiente: Lighthouse audit en producción + enriquecer JSON-LD con sameAs/contactPoint |
| 1 | Leandro (junior multi-frente) | 🟡 Scope + plan 30/60/90 documentado ([deep dive](08-leandro-onboarding.md)). [Guion 1ra videollamada](08a-leandro-first-interview.md). Pendiente: SOPs A/B, Repo Developments (Juan), espacios colaborativos, contrato |
| 5 | Optimizar 250 | ❌ Sin iniciar (correcto — depende de #2 + #5a) |
| 7 | IA onboarding | ❌ Sin iniciar (correcto — depende de #4 + #5a) |
| 10 | Infra escalabilidad | 🟢 Operativo (dual-VPS + paralelismo, ~33× margen) |

**Leyenda**: ✅ done · 🟢 ok · 🔵 en progreso · 🟡 parcial · ⚠️ atención · ❌ no iniciado

---

*Última actualización: 2026-05-06 — User portal Sprint 2 DONE + #12b Sistema de soporte Sprint 1 DONE (tickets integrados a /my-projects/support y /admin/support con dashboard métricas + Slack alerts + permiso asignable a Leandro)*
