# BewPro 2.0 — Plan de Lanzamiento al Mercado
> Documento de trabajo. Revisión: 2026-03-17

---

## Documentación disponible

| Archivo | Contenido |
|---------|-----------|
| `lanzamiento-mercado.md` | Este documento — plan técnico y operativo de go-live |
| `arquitectura-tecnica-cms.md` | Arquitectura del CMS: capas, demos, módulos, provisioning, rutas |
| `programa-de-revendedores.md` | Modelo de revendedores, revenue, onboarding, roadmap |
| **Documentación técnica de demos** | |
| `../demos/arquitectura-demo-modular.md` | Relación demo-módulo, reglas, niveles de integración |
| `../demos/proceso-adaptacion-demo-porto.md` | Cómo extraer e integrar demos de Porto |
| **Playbook operativo (Compania Digital)** | |
| `../compania2.0/sop-proceso-de-proyecto.md` | Proceso completo de un proyecto — modelo para revendedores |
| `../compania2.0/alcance-del-servicio.md` | Qué incluye / extras / correcciones |
| `../compania2.0/precios-y-speech-de-ventas.md` | Tiers, precios, pitch de ventas |
| `../compania2.0/guia-demos-y-cores.md` | Selección de producto por rubro |
| `../compania2.0/formulario-datos-proyecto.md` | Recopilación de datos del cliente |
| `../compania2.0/plantilla-propuesta.md` | Template de propuesta comercial |

---

## Índice

1. [Concepto central](#1-concepto-central)
2. [Arquitectura del sistema](#2-arquitectura-del-sistema)
3. [Pipeline de compra — estado actual](#3-pipeline-de-compra--estado-actual)
4. [Matriz de 21 cores](#4-matriz-de-21-cores)
5. [Gaps identificados por área](#5-gaps-identificados-por-área)
6. [Bloques de trabajo para el lanzamiento](#6-bloques-de-trabajo-para-el-lanzamiento)
7. [Secuencia de ejecución](#7-secuencia-de-ejecución)
8. [Matriz de delegación](#8-matriz-de-delegación)
9. [Checklist de go-live](#9-checklist-de-go-live)

---

## 1. Concepto central

BewPro es una plataforma SaaS de sitios web profesionales construida sobre el principio de **diseño atómico aplicado a productos digitales**:

```
SISTEMA BASE (CD-System)
    + DEMO (template visual)
    + MÓDULOS (funcionalidades activas)
    = CORE PRESET (producto técnico)
        → N shop products (presentaciones de mercado)
            → M landing pages (por target / industria)
```

### Lo que esto significa en la práctica

Un mismo core técnico se presenta como múltiples productos según el target:

```
business-catalogue (core técnico)
    → ecommerce-store       "Tu tienda online, lista en 30 minutos"
    → retail-store          "Tu negocio físico, ahora también en internet"
    → clothing-boutique     "Mostrá tu colección al mundo"
    → furniture-store       "Tu catálogo de muebles siempre disponible"
    → hardware-store        "Tu ferretería, visible las 24hs"
    ... (11 shop products en total)
```

**El trabajo duro es técnico** — que el core funcione correctamente.
**El trabajo de posicionamiento es de IA** — copy, copy por industria, FAQs, SEO.

### Objetivo de escala

- **Corto plazo**: 15–25 productos al mercado
- **Mediano plazo**: Cientos de productos (todas las industrias × demos × módulos)
- **Largo plazo**: Cientos de miles de proyectos provisionados

---

## 2. Arquitectura del sistema

### Stack técnico

| Capa | Tecnología | Descripción |
|------|-----------|-------------|
| Core | Laravel 9 | Base del CMS modular |
| Multitenant | 1 DB por proyecto | `DB_DATABASE` en `.env` aísla cada proyecto |
| Módulos | PHP + Blade | blog, services, gallery, products, projects, faqs, menu, team, references, tokko |
| Demos | CSS + Blade | 16 templates visuales activos |
| Provisioning | Shell + Artisan | `setup_cd_project2.sh` + `bewpro:new` |
| Infraestructura | cPanel / WHM | 1 cuenta por proyecto en servidor Hostinger |
| DNS | Hostinger API | A record automático `{base_name}.bewpro.com` |
| Pagos | Stripe Cashier | Suscripciones mensuales, webhook para provisioning |
| CRM/Pipeline | Airtable | Pipeline_Status: Required → Processing → On Development |
| Email | PHPMailer SMTP | `noreply@bewpro.com` vía cPanel |

### Archivos clave

```
database/seeders/products/
├── catalog.json                    ← 150 shop slugs → core mapping
└── core/
    ├── {core}.json                 ← preset técnico: demo, módulos, fonts, schema
    └── seeds/
        ├── faqs-{core}.json        ← FAQs iniciales por industria
        └── services-{core}.json    ← Servicios iniciales por industria

scripts/bewpro/
├── setup_cd_project2.sh           ← provisioning completo en servidor
└── process-airtable.sh            ← cron: consulta Airtable y provisiona

app/Console/Commands/
├── ProvisionProject.php           ← base: 11 pasos de provisioning
└── ProvisionNew.php               ← bewpro:new: resuelve shop→core, provisiona
```

---

## 3. Pipeline de compra — estado actual

### Flujo end-to-end

```
[1] CLIENTE
    Elige producto en /products-catalogue/{slug}
    ↓
[2] CHECKOUT
    POST /checkout/{slug}
    GuestCheckoutController → Stripe Checkout Session
    Custom field: "Nombre de tu negocio"
    ↓
[3] PAGO EN STRIPE
    Cliente ingresa datos de tarjeta
    ↓
[4] WEBHOOK (inmediato, segundos)
    POST /stripe/webhook
    StripeWebhookController::handleCheckoutSessionCompleted()
    → Crea registro en Airtable Projects (Pipeline_Status = "Required")
    → Envía OrderReceivedMail al cliente
      "Recibimos tu pedido. Tu sitio estará listo en ~20-30 min"
    ↓
[5] CONFIRMACIÓN (inmediato)
    Cliente ve /checkout/success
    Timeline: Pago ✓ → Construyendo (~20-30 min) → Email con credenciales
    ↓
[6] CRON (cada 5 min, servidor)
    /root/scripts/process-airtable.sh
    → Consulta Airtable: Pipeline_Status = "Required"
    → Marca "Processing" (evita race condition entre runs del cron)
    → Ejecuta setup_cd_project2.sh
    ↓
[7] PROVISIONING (15-25 min, servidor)
    setup_cd_project2.sh:
    [1/10] Crear cuenta cPanel
    [2/10] Crear DB + usuario MySQL
    [3/10] Configurar SSH keys
    [4/10] Preparar estructura git-files
    [5/10] Clonar repositorio cd-system (con reference cache)
    [6/10] Configurar .env de Laravel
    [7/10] php artisan bewpro:new --no-email (11 pasos)
    [8/10] Crear .htaccess (routing al public/)
    [9/10] Crear DNS record en Hostinger API
    [10/10] AutoSSL (certificado HTTPS)
    ↓
[8] POST-PROVISIONING
    → Actualiza Airtable: Pipeline_Status = "On Development"
    → Crea registro en tabla Subscriptions de Airtable
    → Envía email con credenciales al cliente (send-welcome-email.php)
      "Tu sitio está online. URL + usuario + contraseña"
    ↓
[9] CLIENTE RECIBE
    Email con link al sitio + link al panel admin + credenciales
    El sitio tiene contenido inicial cargado (seed content)
```

### Los 11 pasos de bewpro:new

```
Step 1:  Switch Database (crea DB, conecta)
Step 2:  Run Migrations
Step 3:  Write cd-system Config (demo + módulos activos)
Step 4:  Seed Base Data (permisos, roles, usuario admin con email+password del cliente)
Step 5:  Write Site Data (nombre, contacto, SEO, redes sociales)
Step 6:  Write Analytics config
Step 7:  Process Assets (Cloudinary)
Step 8:  Install Clean Content Defaults
Step 9:  Seed Module Content (services, faqs, blog, gallery, etc. desde JSONs)
Step 10: Seed CdBase (carousel, páginas base)
Step 11: Clear Caches
```

### Estado del pipeline

| Componente | Estado | Notas |
|-----------|--------|-------|
| Stripe checkout (guest) | ✅ | Sin auth, custom field para nombre del negocio |
| Webhook → Airtable | ✅ | Crea registro con Pipeline_Status = Required |
| Email inmediato post-pago | ✅ | `OrderReceivedMail` desde el webhook |
| Cron cada 5 min | ✅ | `/root/scripts/process-airtable.sh` en crontab |
| Race condition fix | ✅ | Marca "Processing" antes de provisionar |
| Status "Failed" si falla | ✅ | Con timestamp en campo Notes de Airtable |
| setup_cd_project2.sh | ✅ | 10 pasos, idempotente |
| DNS Hostinger automático | ✅ | Para subdominios `*.bewpro.com` |
| Email con credenciales | ✅ | `send-welcome-email.php` vía PHPMailer SMTP |
| Stripe en LIVE mode | ❌ | Actualmente `pk_test_` / `sk_test_` |
| stripe_price_id por producto | ❌ | Ningún producto tiene precio real en DB |

---

## 4. Matriz de 21 cores

### Agrupados por demo

```
DEMO                      CORES                    MÓDULOS
──────────────────────────────────────────────────────────────────────────────
demo-digital-agency-2     business-catalogue       services, products, faqs, gallery
  (5 cores)               catalogue-ai             products, faqs
                          sitio-web-profesional    services, gallery, blog, faqs
                          standard-website         services, faqs, gallery, blog
                          website-reseller         products, services, blog, projects, faqs

demo-insurance            concierge                services, gallery, projects, blog, products
  (4 cores)               financial-wealth         services, blog, references, faqs, team
                          insurance-advisor        services, faqs
                          nutritionist             services, blog, gallery, faqs

demo-accounting-1         agency                   services, blog, projects, gallery, team, references
  (2 cores)               foundations-ong          services, blog, gallery, faqs

demo-business-consulting  bp-dinamic               services, faqs
  (2 cores)               petite-website           services, faqs

demo-architecture-2       art-design               services, gallery, projects, blog, faqs

demo-accounting-2         personal-brand           gallery, blog, projects

demo-photography-3        photography              gallery, blog, projects

demo-law-firm-2           law-firm-digital         services, team, blog, references, faqs

demo-restaurant           restaurant-bar           menu, gallery, blog, faqs

demo-construction         construction             services, projects, gallery, blog, faqs

demo-marketing-1          corporative              services, gallery, projects, faqs

demo-real-estate          real-estate              tokko, services, gallery, blog, faqs, projects
  (caso especial)
```

### Estado de seed content por core

| Core | Demo | FAQs seed | Services seed | Testeado |
|------|------|:---------:|:-------------:|:--------:|
| agency | demo-accounting-1 | ❌ | ❌ | ❌ |
| art-design | demo-architecture-2 | ❌ | ❌ | ❌ |
| bp-dinamic | demo-business-consulting | ❌ | ❌ | ❌ |
| business-catalogue | demo-digital-agency-2 | ❌ | ❌ | ❌ |
| catalogue-ai | demo-digital-agency-2 | ❌ | ❌ | ❌ |
| concierge | demo-insurance | ❌ | ❌ | ❌ |
| construction | demo-construction | ❌ | ❌ | ❌ |
| corporative | demo-marketing-1 | ❌ | ❌ | ❌ |
| financial-wealth | demo-insurance | ❌ | ❌ | ❌ |
| foundations-ong | demo-accounting-1 | ❌ | ❌ | ❌ |
| insurance-advisor | demo-insurance | ❌ | ❌ | ❌ |
| law-firm-digital | demo-law-firm-2 | ❌ | ❌ | ❌ |
| nutritionist | demo-insurance | ❌ | ❌ | ❌ |
| personal-brand | demo-accounting-2 | ❌ | ❌ | ❌ |
| petite-website | demo-business-consulting | ❌ | ❌ | ❌ |
| photography | demo-photography-3 | ❌ | ❌ | ❌ |
| real-estate | demo-real-estate | ❌ | ❌ | ❌ |
| restaurant-bar | demo-restaurant | ❌ | ❌ | ❌ |
| sitio-web-profesional | demo-digital-agency-2 | ❌ | ❌ | ❌ |
| standard-website | demo-digital-agency-2 | ❌ | ❌ | ❌ |
| website-reseller | demo-digital-agency-2 | ✅ | ❌ | ⚠️ |

> **Nota**: 20/21 cores sin seed content → los sitios se provisonan sin contenido inicial.
> Único con FAQs seed: `website-reseller` (14 FAQs en 3 categorías).

### Observación sobre las vistas de landing

La vista genérica `products/frontend/show.blade.php` **ya incluye Stripe CTA** para todos los demos (verifica `$product->hasStripePrice()`). Solo `demo-digital-agency-2` tiene una vista custom premium con hero, tagline, persona objetivo, pain points y value props.

Para el lanzamiento inicial la vista genérica es funcional para todos. La vista custom de digital-agency-2 es el modelo a replicar progresivamente para los demás demos.

---

## 5. Gaps identificados por área

### 5.1 Producto / Core

| Gap | Impacto | Tipo de trabajo |
|-----|---------|----------------|
| 20/21 cores sin FAQs seed | Alto — sitio provisionado vacío | IA (generación JSON) |
| 21/21 cores sin Services seed | Alto — sitio provisionado vacío | IA (generación JSON) |
| Ningún producto tiene stripe_price_id | Bloqueante para cobro real | Operacional (Stripe dashboard) |
| Stripe en TEST mode | Bloqueante para ventas reales | Operacional (.env keys) |
| real-estate: Tokko requiere API key externa | Requiere decisión de onboarding | Producto / Desarrollo |

### 5.2 Frontend (bewpro.com como punto de venta)

| Gap | Impacto | Tipo de trabajo |
|-----|---------|----------------|
| Landing `/products-catalogue/{slug}` funciona pero sin datos ricos | Medio — copy y precio no cargados | Operacional (catalog:seed) |
| Página de catálogo — calidad visual a revisar | Medio — primera impresión del catálogo | Diseño / revisión |
| Homepage de BewPro — posicionamiento y CTA | Alto — entrada principal | Diseño / Contenido |
| Sin screenshots/preview de cada demo | Alto — cliente no ve cómo queda su sitio | Diseño / Assets |
| Sin social proof (testimonios, proyectos live) | Medio — confianza del comprador | Marketing / Contenido |

### 5.3 Testing

| Gap | Impacto | Tipo de trabajo |
|-----|---------|----------------|
| 0/21 cores testeados end-to-end en provisioning | Bloqueante — puede haber bugs por demo | Técnico |
| Sin test de email delivery (spam filters) | Medio — cliente no recibe credenciales | Técnico / Operacional |
| Sin test de mobile en checkout y success page | Medio — mayoría de compras desde mobile | Técnico / Diseño |
| Sin test de fallo y recovery (cPanel lleno, DNS falla) | Medio — manejo de excepciones | Técnico |

### 5.4 Infraestructura y operaciones

| Gap | Impacto | Tipo de trabajo |
|-----|---------|----------------|
| Sin alerta cuando Pipeline_Status = "Failed" | Alto — pedido sin atender | Técnico (script/email) |
| Sin proceso documentado de retry manual | Medio — saber qué hacer si falla | Operacional |
| Sin política de cancelación / baja de cuenta | Medio — qué pasa cuando el cliente no renueva | Producto / Técnico |
| Sin monitoreo de uptime de los proyectos provisionados | Bajo para lanzamiento, importante a escala | Técnico |
| Provisioning secuencial (1 a la vez vía cron) | Bajo ahora, bloqueante a escala | Técnico (futuro: queues) |

### 5.5 Stripe / Pagos

| Gap | Impacto | Tipo de trabajo |
|-----|---------|----------------|
| Crear 21 precios en Stripe dashboard | Bloqueante | Operacional |
| Cargar stripe_price_id en DB de bewpro33 | Bloqueante | Operacional |
| Registrar webhook en Stripe (live) | Bloqueante | Operacional |
| Definir estrategia de precios | Bloqueante | Producto |
| Definir manejo de IVA/impuestos | Medio | Legal / Producto |
| Proceso de renovación automática y qué pasa si no paga | Medio | Producto |

---

## 6. Bloques de trabajo para el lanzamiento

### BLOQUE A — Seed content (IA)
**Responsable: Claude / IA**
**Tiempo estimado: 1–2 sesiones de trabajo**

Generar para los 21 cores:
- `faqs-{core}.json`: 8–12 FAQs relevantes para la industria (template: `faqs-website-reseller.json`)
- `services-{core}.json`: 5–8 servicios con nombre, descripción corta, precio referencial

Formato establecido, trabajo 100% sistemático y delegable a IA.

**Output**: 42 archivos JSON en `database/seeders/products/core/seeds/`

---

### BLOQUE B — Testing técnico por demo
**Responsable: Desarrollo / Técnico**
**Tiempo estimado: 1 semana**

Dado que múltiples cores comparten el mismo demo, los tests únicos son 12 (uno por demo):

```
Test   Demo                    Core representativo    Módulos a validar
────────────────────────────────────────────────────────────────────────────
1      demo-digital-agency-2   standard-website       services, faqs, gallery, blog
2      demo-insurance          insurance-advisor      services, faqs
3      demo-insurance (full)   financial-wealth       services, blog, references, faqs, team
4      demo-accounting-1       foundations-ong        services, blog, gallery, faqs
5      demo-accounting-1       agency                 services, blog, projects, gallery, team, references
6      demo-business-consul.   bp-dinamic             services, faqs
7      demo-architecture-2     art-design             services, gallery, projects, blog, faqs
8      demo-accounting-2       personal-brand         gallery, blog, projects
9      demo-photography-3      photography            gallery, blog, projects
10     demo-law-firm-2         law-firm-digital       services, team, blog, references, faqs
11     demo-restaurant         restaurant-bar         menu, gallery, blog, faqs
12     demo-construction       construction           services, projects, gallery, blog, faqs
13     demo-marketing-1        corporative            services, gallery, projects, faqs
14     demo-real-estate        real-estate            tokko, services, gallery, blog, faqs, projects
```

**Checklist por test:**
```
□ bewpro:new provisiona sin errores
□ Homepage carga sin errores PHP/Blade
□ Header y footer del demo se renderizan correctamente
□ Navegación incluye todos los módulos activos
□ Cada página de módulo carga (servicios, blog, galería, etc.)
□ Formularios de contacto funcionan
□ Responsive mobile sin quiebres visuales
□ Sin errores en storage/logs/laravel.log
□ Tiempo de carga aceptable (<3s)
```

**Nota sobre real-estate / Tokko**: requiere decisión sobre cómo manejar la API key del cliente en el onboarding. Opciones:
1. El cliente la ingresa desde el panel admin post-provisioning
2. Se recolecta en el checkout como campo adicional
3. Se provisiona sin Tokko activo hasta que el cliente lo configure

---

### BLOQUE C — Stripe y precios
**Responsable: Operacional**
**Tiempo estimado: 1 día**

```
1. Definir precios por core (o por categoría de cores)
   Ejemplo de estructura posible:
   - Cores básicos (bp-dinamic, petite-website, insurance-advisor): $X/mes
   - Cores estándar (standard-website, photography, personal-brand): $Y/mes
   - Cores completos (agency, law-firm-digital, construction): $Z/mes

2. Crear precios en Stripe dashboard (modo live)
   → Un "Price" por core en Stripe
   → Los shop products del mismo core comparten el mismo Price ID

3. Cargar stripe_price_id en bewpro33 DB
   → Actualizar tabla products: SET stripe_price_id = 'price_xxx' WHERE core_slug = 'yyy'
   → O via comando: bewpro:catalog:seed --update

4. Configurar .env de bewpro33 (live):
   STRIPE_KEY=pk_live_...
   STRIPE_SECRET=sk_live_...
   STRIPE_WEBHOOK_SECRET=whsec_...

5. Registrar webhook en Stripe dashboard:
   URL: https://bewpro.com/stripe/webhook
   Evento: checkout.session.completed

6. Test de compra real (una transacción de verificación)
```

---

### BLOQUE D — Calidad del front de BewPro
**Responsable: Diseño / Desarrollo**
**Tiempo estimado: 3–5 días**

```
1. Correr bewpro:catalog:seed --update en bewpro33
   → Carga copy, precios y campos marketing de Airtable a la DB
   → Activa las landing pages con contenido real

2. Revisar listado /products-catalogue/
   → ¿Se ven las categorías correctamente?
   → ¿Las tarjetas de producto muestran nombre, precio, descripción?
   → ¿El filtro por categoría funciona?

3. Revisar landing /products-catalogue/{slug} (una muestra de 5–6 demos distintos)
   → ¿El CTA de Stripe aparece?
   → ¿Se ve el precio correcto?
   → ¿La descripción del producto es clara?

4. Agregar screenshots/previews de demos
   → Un screenshot por demo (desktop + mobile)
   → Mostrado en la landing page del producto
   → Permite al cliente ver cómo va a quedar su sitio antes de comprar

5. Revisar homepage de BewPro (bewpro.com)
   → ¿Comunica el concepto claramente?
   → ¿Hay un CTA claro hacia el catálogo?
   → ¿Se mencionan los demos/industrias disponibles?
```

---

## 7. Secuencia de ejecución

```
FASE 1 — BASE TÉCNICA (paralelo, 1 semana)
├── A: Generar seed content (42 JSONs) — Claude lo hace
└── B: Provisionar y testear 14 demos — equipo técnico

FASE 2 — DATOS Y STRIPE (3–4 días)
├── Correr bewpro:catalog:seed con datos de Airtable completos
├── Definir precios y crear en Stripe
└── Cargar stripe_price_id en DB

FASE 3 — CALIDAD Y PULIDO (3–5 días)
├── Review visual de cada demo provisionado
├── Review del front de bewpro.com
├── Screenshots de demos para las landing pages
└── Fix de issues encontrados en testing

FASE 4 — GO-LIVE (1 día)
├── Switch a Stripe live
├── Test de compra real completo
├── Confirmar cron activo y pipeline funcionando
└── Lanzar
```

---

## 8. Matriz de delegación

| Tarea | Quién | Herramienta | Prioridad |
|-------|-------|------------|-----------|
| Generar faqs-{core}.json × 21 | **Claude** | Generación JSON | 🔴 Crítico |
| Generar services-{core}.json × 21 | **Claude** | Generación JSON | 🔴 Crítico |
| Test provisioning × 14 demos | **Técnico** | Artisan CLI + revisión manual | 🔴 Crítico |
| Definir precios por core | **Producto/Negocio** | Decisión estratégica | 🔴 Crítico |
| Crear precios en Stripe live | **Operacional** | Stripe dashboard | 🔴 Crítico |
| Cargar stripe_price_id en DB | **Técnico** | Artisan / SQL | 🔴 Crítico |
| Completar copy en Airtable (si falta) | **Claude** | Airtable API | 🟡 Importante |
| Screenshots de demos | **Diseño** | Browser / Figma | 🟡 Importante |
| Review visual del front de BewPro | **Diseño** | Manual | 🟡 Importante |
| Configurar STRIPE_* live en .env | **Técnico** | SSH | 🔴 Crítico |
| Registrar webhook en Stripe | **Técnico** | Stripe dashboard | 🔴 Crítico |
| Decisión sobre Tokko / real-estate | **Producto** | Documento | 🟡 Importante |
| Alerta de proyectos "Failed" | **Técnico** | Script + email | 🟡 Importante |
| Política de cancelación | **Producto/Legal** | Documento | 🟢 Post-lanzamiento |
| Monitoreo de uptime | **Técnico** | UptimeRobot u otro | 🟢 Post-lanzamiento |
| SEO de landing pages | **Claude** | Generación de metadatos | 🟢 Post-lanzamiento |
| Social proof / testimonios | **Marketing** | Manual | 🟢 Post-lanzamiento |

---

## 9. Checklist de go-live

### Técnico
- [ ] Todos los seed content JSON generados y commiteados
- [ ] Test de provisioning exitoso para los 14 demos
- [ ] `bewpro:catalog:seed --update` corrido en producción
- [ ] `stripe_price_id` cargado para todos los productos activos
- [ ] `.env` de bewpro33 con claves Stripe live
- [ ] Webhook registrado en Stripe dashboard (live)
- [ ] Test de compra real end-to-end completado
- [ ] Email de confirmación llega a cliente (no va a spam)
- [ ] Email de credenciales llega a cliente (no va a spam)
- [ ] Sitio provisionado carga correctamente con contenido inicial

### Producto / UX
- [ ] Todos los productos activos tienen nombre, precio y descripción visible
- [ ] Landing page de al menos una muestra por demo se ve bien
- [ ] Checkout mobile funciona correctamente
- [ ] Página de éxito comunica el timing correcto (~20-30 min)
- [ ] Homepage de BewPro tiene CTA claro al catálogo

### Operaciones
- [ ] Cron activo y corriendo en servidor (`*/5 * * * *`)
- [ ] Alerta definida para proyectos en estado "Failed"
- [ ] `soporte@bewpro.com` monitoreado y con respuesta
- [ ] Proceso documentado para retry manual de proyectos fallidos

---

## Notas y decisiones pendientes

### Tokko / Real Estate
El core `real-estate` usa el módulo Tokko que requiere una API key del servicio externo Tokko Broker. Necesita definirse cómo se recolecta esta key durante el checkout o el onboarding post-provisioning. Opciones:
1. **Campo en checkout**: agregar un campo adicional en Stripe Checkout o en un form previo
2. **Config post-provisioning**: el cliente ingresa la key desde el panel admin después de recibir su sitio
3. **Provisionar sin Tokko**: el módulo se activa pero vacío, con instrucciones para configurarlo

### Modelo de precios
Definir si el precio es:
- **Plano por producto** (precio único para todos los shop products del mismo core)
- **Por categoría** (básico/estándar/pro según módulos incluidos)
- **Variable por industria** (premium para sectores con mayor LTV: legal, finance, real estate)

### Escala del servidor
El servidor actual (`srv1112606.hstgr.cloud`) provisiona proyectos secuencialmente, 1 a la vez vía cron. Para el volumen inicial (decenas de proyectos/semana) es suficiente. Cuando el volumen crezca a cientos/semana, se necesitará:
- Múltiples instancias del cron en servidores paralelos
- O migración a queue workers (Laravel Horizon + Redis)

### Renovaciones y bajas
Stripe maneja las renovaciones automáticamente. Falta definir:
- ¿Qué pasa en el sistema cuando un cliente cancela? ¿Se suspende el cPanel? ¿Se elimina?
- ¿Hay período de gracia antes de suspensión?
- ¿Quién ejecuta la baja en el servidor?

---

*Documento generado en sesión de trabajo con Claude Code — 2026-03-14*
*Revisión recomendada: después del testing de cada bloque*
