Ruta de aprendizaje de Crimoo
Esta ruta es para un desarrollador que ya conoce la app Angular y quiere dominar todo el sistema Crimoo: lógica de negocio, backend, runtime GTM server-side, flujo de tracking, infraestructura, depuración y pruebas.
Crimoo es una plataforma para administrar GTM server-side. Permite crear y operar contenedores GTM server-side, enrutar tráfico de tracking por dominios propios, capturar identidades CRM, inspeccionar eventos del navegador, enviar conversiones offline y gestionar suscripciones.
Cómo usar estos docs
Lée esta página como mapa principal:
- Usa esta ruta como guía.
- Lee Lógica de negocio para aprender el lenguaje del dominio.
- Usa Mapa de proyectos para entender qué carpeta pertenece a cada responsabilidad.
- Abre las páginas de proyecto en Proyectos cuando necesites detalle de implementación.
- Usa Índice de consulta para skills cuando quieras preguntar a Codex sobre lógica, ownership o depuración.
Fase 1: Producto y dominio
Objetivo: explicar Crimoo sin mencionar frameworks.
Debes poder responder:
- Qué es un workspace y por qué agrupa GTMs, CRM, conversiones y analytics.
- Qué diferencia hay entre un registro GTM y un contenedor Docker GTM.
- Qué es dominio primario, dominio custom, dominio del loader y dominio de tracking.
- Qué datos viven en PostgreSQL y cuáles en ClickHouse.
- Por qué el flujo normal de tracking responde
202 Acceptedantes de que el contenedor procese el evento. - Por qué preview/debug va por una ruta sincrónica.
Lee:
Practica:
- Dibuja el camino de un page view desde browser a
gtm-proxy, Pub/Sub,gtm-fabric, el contenedor GTM y ClickHouse. - Toma un GTM en la UI e identifica la entidad backend, dominios, VM, contenedores, puertos y certificados.
Fase 2: Control plane
Objetivo: entender cómo Crimoo guarda configuración y coordina al resto de servicios.
El control plane está principalmente en node-api junto con PostgreSQL, ClickHouse, Stripe, Gemini, Cloudflare y las APIs internas que usan gtm-fabric y gtm-proxy.
Lee:
- Proyecto node-api
- Servicio node-api
- Comunicación interna
- Flujo de autenticación
- Flujo de conversiones offline
Domina:
- Middleware y registro de rutas en Express.
- Entidades y migraciones de TypeORM.
- Scope por workspace y guards de auth.
- Casos de uso del ciclo de vida GTM.
- Endpoints internos bajo
/internal/fabric/*. - Scheduler de renovación de certificados.
- Ciclo de billing con Stripe checkout y webhooks.
- Integración con Copilot y Gemini.
Practica:
- Sigue
POST /api/v1/gtmdesde la ruta hasta controller, use case, persistencia y llamada a fabric. - Sigue
GET /internal/fabric/gtms?vmId=Xy enumera los campos que necesita un servicio del data plane al arrancar. - Sigue un batch de CRM capture desde fabric a node-api y hasta contacts.
Fase 3: Data plane
Objetivo: entender el runtime que recibe tráfico productivo de tracking.
El data plane está principalmente en gtm-proxy y gtm-fabric.
Lee:
- Proyecto gtm-proxy
- Proyecto gtm-fabric
- Servicio gateway + gtm-proxy
- Servicio gtm-fabric
- Tagging y ofuscación
Domina:
- Routing HTTP y lookup dinámico de certificados por SNI.
- Routing de
api.crimoo.comhacianode-api. - Routing de
/api/*del dominio del cliente hacia management/fabric. - Flujo async de tracking: el proxy responde
202y luego publica en Pub/Sub. - Flujo sync de preview: el proxy reenvía directo al contenedor GTM.
- GA4 bypass y desofuscación de rutas/query params.
- Consumer de Pub/Sub, rate limiting, circuit breaker, parser chain, enriquecimiento y batch insert en ClickHouse.
- Config stateless en
gtm-fabric: fetch al arrancar desde node-api y cache en memoria.
Practica:
- Dado un host y una ruta, decide si
gtm-proxydevuelve 403, 404, 503, JS del custom loader, publish a Pub/Sub, forward a node-api, forward a fabric o proxy directo al contenedor GTM. - Simula un miss de cache de certificado y explica cada componente.
- Explica por qué I/O bloqueante dentro del event loop de Netty es peligroso.
Fase 4: Angular y experiencia de desarrollo
Objetivo: conectar tu conocimiento de Angular con backend y contratos del data plane.
Lee:
Domina:
- Modelo auth con
withCredentials: true. - Workspace context y scope de requests.
- Wizard de GTM setup y pantallas de settings.
- Contacts, deals, timelines y configuración de captura.
- Pantallas de offline conversions.
- Dashboard de analytics y filtros.
- Puntos de entrada de Copilot.
Practica:
- Elige un servicio Angular y mapea cada método a un endpoint backend.
- Toma una acción del dashboard y sigue el cambio de estado, la llamada HTTP, el efecto backend y el feedback de UI.
Fase 5: Inspector, Copilot e integraciones
Objetivo: entender herramientas que rodean la plataforma central.
Lee:
- Proyecto crimoo-inspector
- Proyecto CrimooCopilot-Backend
- Proyecto CrimooCopilot-front
- Proyecto plugins
- Flujo de sesión Copilot
Domina:
- Inyección del inspector en Shadow DOM y creación de reglas vía postMessage.
- Ciclo de vida de sesiones Copilot y passthrough de clicks en iframe.
- Límites entre Gemini, GTM automation y verificación de DOM.
- Intención de los plugins WordPress y Shopify.
Practica:
- Abre una sesión de debug y explica cómo se carga el bundle del inspector.
- Sigue un mensaje
crimoo:create-ruledesde el sitio del cliente hasta Angular y después al backend.
Fase 6: Infra, despliegue y contexto legado
Objetivo: saber qué corre en producción, qué es histórico y qué es experimental.
Lee:
Domina:
- Topología de producción en la VPS de Hostinger.
- Firebase Hosting para la UI Angular.
- Docker Compose alrededor de node-api, PostgreSQL y ClickHouse.
- Por qué
gtm-proxyes hoy la entrada pública real para tracking. - Qué proyectos Go/VM manager antiguos son útiles como contexto pero no como ruta productiva.
Practica:
- Reconstruye el diagrama de despliegue de memoria.
- Lista qué debe revisarse antes de declarar una carpeta como core de producción.
Fase 7: Pruebas y confianza
Objetivo: saber validar cambios sin adivinar.
Lee:
- Proyecto e2e
- Proyecto EndToEndTests-e2e
- Las secciones de pruebas de cada página de proyecto.
Domina:
- Tests unitarios e integración en
node-api. - Tests Maven en servicios Java.
- Tests unitarios de Angular.
- Playwright browser tests.
- Smoke tests manuales para GTM lifecycle, tracking, CRM capture y billing.
Practica:
- Ejecuta primero el test más pequeño relevante antes de tocar un módulo.
- Después de un cambio cross-service, escribe un script de verificación manual con requests, logs y efectos en base de datos esperados.
Checklist de dominio
Estás listo para trabajar por todo el proyecto cuando puedas:
- Explicar el flujo normal y el flujo preview de tracking.
- Cambiar un comportamiento de GTM lifecycle sin romper el contrato proxy/fabric.
- Agregar un endpoint backend y conectarlo con Angular respetando workspace/auth.
- Depurar SSL/certificados entre Cloudflare, node-api, fabric y proxy.
- Inspeccionar writes a ClickHouse y datos de control en PostgreSQL.
- Razonar sobre fallos async: retries de Pub/Sub, timeouts de container, circuit breakers y stale cache.
- Saber qué carpetas son core de producción, herramientas de apoyo, docs, tests, plugins o legado.