Crimoo Mastery Learning Path
This path is for a developer who already knows the Angular dashboard and wants to master the full Crimoo system: business rules, backend ownership, server-side GTM runtime, tracking data flow, infrastructure, debugging, and tests.
Crimoo is a GTM server-side administration platform. The product lets a customer create and operate server-side GTM containers, route tracking traffic through first-party domains, capture CRM identities, inspect browser events, send offline conversions, and manage subscriptions.
How to Use These Docs
Read in passes:
- Use this page as the roadmap.
- Read Business Logic to learn the domain language.
- Use Project Map to understand which folder owns each concern.
- Open the project pages under Projects when you need implementation detail.
- Use Skill Consultation Index when asking Codex or a future skill about logic, ownership, or debugging.
Phase 1: Product and Domain Model
Goal: explain Crimoo without mentioning a framework.
You should be able to answer:
- What is a workspace, and why does it scope GTMs, CRM, conversions, and analytics?
- What is a GTM record versus a Docker GTM container?
- What is a primary domain, custom domain, loader domain, and tracking domain?
- What data is stored in PostgreSQL versus ClickHouse?
- Why does the normal tracking path return
202 Acceptedbefore the GTM container processes the event? - Why is preview/debug routed synchronously?
Read:
Practice:
- Draw the path for a page view from browser to
gtm-proxy, Pub/Sub,gtm-fabric, GTM container, and ClickHouse. - Pick one GTM in the UI and identify the matching backend entity, domains, VM, containers, ports, and certificates.
Phase 2: Control Plane
Goal: understand how Crimoo stores configuration and coordinates all other services.
The control plane is mainly node-api plus PostgreSQL, ClickHouse, Stripe, Gemini, Cloudflare, and the internal HTTP APIs used by gtm-fabric and gtm-proxy.
Read:
- node-api Project
- node-api Service
- Internal Communication
- Authentication Flow
- Offline Conversions Flow
Master:
- Express route registration and middleware order.
- TypeORM entities and migrations.
- Workspace scoping and auth guards.
- GTM lifecycle use cases.
- Internal fabric endpoints under
/internal/fabric/*. - Certificate renewal scheduler.
- Billing lifecycle with Stripe checkout and webhooks.
- Copilot and Gemini integration boundaries.
Practice:
- Trace
POST /api/v1/gtmfrom route to controller, use case, persistence, and fabric call. - Trace
GET /internal/fabric/gtms?vmId=Xand list the fields a data-plane service needs at startup. - Trace one CRM capture batch from fabric to node-api and into contacts.
Phase 3: Data Plane
Goal: understand the runtime that receives production tracking traffic.
The data plane is primarily gtm-proxy and gtm-fabric.
Read:
- gtm-proxy Project
- gtm-fabric Project
- gateway + gtm-proxy Service
- gtm-fabric Service
- Tagging and Obfuscation
Master:
- Netty request routing and dynamic SNI certificate lookup.
api.crimoo.comrouting tonode-api.- Customer-domain
/api/*routing to management/fabric. - Async tracking path: proxy returns
202, then publishes to Pub/Sub. - Sync preview path: proxy forwards directly to the GTM container.
- GA4 bypass and path/query deobfuscation.
- Pub/Sub consumer, rate limiting, circuit breaker, parser chain, enrichment, and ClickHouse batch inserts.
- Stateless config in
gtm-fabric: startup fetch from node-api and in-memory cache.
Practice:
- Given a host and path, decide whether
gtm-proxyreturns 403, 404, 503, custom loader JS, Pub/Sub publish, node-api forward, fabric forward, or direct GTM container proxy. - Simulate a certificate cache miss and explain every component involved.
- Explain why blocking I/O inside the Netty event loop is dangerous.
Phase 4: Angular and Developer Experience
Goal: connect your Angular knowledge to the backend and data-plane contracts.
Read:
Master:
withCredentials: trueauth model.- Workspace context and request scoping.
- GTM setup wizard and settings pages.
- CRM contacts, deals, timelines, and capture configuration.
- Offline conversions screens.
- Analytics dashboard widgets and filters.
- Copilot UI entry points.
Practice:
- Pick one Angular service and map every method to a backend endpoint.
- Pick one dashboard action and trace its state change, HTTP call, backend effect, and UI feedback.
Phase 5: Inspector, Copilot, and Integrations
Goal: understand tools that run around the core platform.
Read:
- crimoo-inspector Project
- CrimooCopilot Backend Project
- CrimooCopilot Front Project
- plugins Project
- Copilot Session Flow
Master:
- Inspector Shadow DOM injection and postMessage rule creation.
- Copilot session lifecycle and iframe click passthrough.
- Gemini/GTM automation boundaries.
- WordPress and Shopify plugin intent.
Practice:
- Open a debug session and explain how the inspector bundle gets loaded.
- Follow a
crimoo:create-rulemessage from the customer site back to Angular and then to the backend.
Phase 6: Infra, Deployment, and Legacy Context
Goal: know what runs in production, what is historical, and what is experimental.
Read:
Master:
- Hostinger VPS production topology.
- Firebase Hosting for the Angular UI.
- Docker Compose around node-api, PostgreSQL, and ClickHouse.
- Why
gtm-proxyis the current production edge path. - Which older Go/VM-manager projects contain useful ideas but are not the documented production tagging path.
Practice:
- Rebuild the deployment diagram from memory.
- List what must be checked before calling a folder production-critical.
Phase 7: Testing and Confidence
Goal: know how to validate changes without guessing.
Read:
- e2e Project
- EndToEndTests-e2e Project
- Test sections in each project page.
Master:
- Unit and integration tests in
node-api. - Maven tests in Java services.
- Angular unit tests.
- Playwright browser tests.
- Manual smoke tests for GTM lifecycle, tracking, CRM capture, and billing.
Practice:
- Run the smallest relevant test before touching a module.
- After a cross-service change, write a manual verification script with expected requests, logs, and database effects.
Mastery Checklist
You are ready to work across the whole project when you can:
- Explain the full normal and preview tracking paths.
- Change a GTM lifecycle behavior without breaking the proxy/fabric contract.
- Add a backend endpoint and wire it to Angular with workspace/auth rules.
- Debug SSL/certificate issues across Cloudflare, node-api, fabric, and proxy.
- Inspect ClickHouse event writes and PostgreSQL control data.
- Reason about async failure modes: Pub/Sub retry, container timeouts, circuit breakers, and cache staleness.
- Tell which top-level folders are production core, supporting tools, docs apps, tests, plugins, or legacy/experimental.