ADR-010: Module-Based Product Architecture (Traxs One Suite)
Date: 2026-07-07
Status: Accepted
Deciders: Pete Carroll
Context
As Traxs Group expands to three products, a decision must be made about how those products are positioned and architected — as three separate standalone products, or as modules of a single unified platform.
This decision affects pricing, packaging, user experience, marketing positioning, and the long-term competitive moat of the company.
Decision
Traxs Group products are architected and marketed as modules of the Traxs One Suite — a unified business operating platform — rather than as three entirely separate standalone products.
Each module is:
- Independently purchasable — a customer can subscribe to RoundTrip only, Waypoint only, or Relay only
- Independently deployable — each module is its own codebase, its own deployment, its own database
- Deeply integrated — data flows between modules automatically when a customer subscribes to multiple
- Part of a unified experience — shared login, shared navigation shell, shared client records
Traxs One Suite
├── Relay Module — Revenue Operating System
├── RoundTrip Module — Service Delivery Operating System
└── Waypoint Module — Business Operating System
Alternatives Considered
Option A — Three Entirely Separate Products
RoundTrip, Waypoint, and Relay are marketed and built as completely independent products with separate branding, separate logins, and no integration.
Rejected because:
- Loses the compounding competitive advantage of the integrated suite
- Each product must compete on its own against well-funded incumbents (HubSpot, ServiceTitan, NetSuite)
- No cross-sell engine — acquiring customers for each product starts from zero
- Three separate brands to build and market
- The most compelling pitch ("one platform for your whole business") is impossible
Option B — One Monolithic Product
All features (RoundTrip, Waypoint, Relay) live in a single codebase and are sold as one product.
Rejected because:
- Scope is unmanageable for a solo founder
- Customers who only need field service management don't want to pay for CRM features
- Releases are blocked until all modules are ready
- Impossible to price appropriately for different customer needs
- A single product can't serve both "HVAC company with 3 techs" and "professional services firm"
Option C — Module-Based Suite (selected)
Independently deployable products with deep integration and unified experience.
Selected because:
- Each module can be built and shipped independently — RoundTrip ships without waiting for Waypoint
- Customers pay for what they need — lower barrier to entry
- Cross-sell is built into the product — "you're already on RoundTrip, add Waypoint for $79/month"
- The integrated suite story is the long-term competitive moat — no single-product competitor can match it at the price point
- Each new module is a marketing moment — a reason to announce and re-engage customers
- This is the model used by successful SaaS ecosystems (Zoho, HubSpot, Atlassian)
The Integration Architecture
Shared Components
| Component | Implementation |
|---|---|
| Authentication | Shared Entra External ID tenant (see ADR-009) |
| Navigation shell | Shared React component library (private npm package) |
| Client records | Event-driven sync via Command Center API |
| Billing | Stripe customer shared across products — Command Center API as billing hub |
| Support | Single Crisp workspace with product tags for routing |
Data Flow Between Modules
Relay converts a lead → publishes LeadConverted event
→ Command Center API routes to RoundTrip
→ RoundTrip creates Client record
→ RoundTrip returns clientId to Relay
→ Relay links opportunity to RoundTrip client
RoundTrip completes a job → publishes JobCompleted event
→ Command Center API routes to Waypoint
→ Waypoint updates revenue snapshot
→ Command Center API routes to Relay
→ Relay triggers post-service follow-up campaign
Subscription Model
Starter customers: One module only
Growth customers: Two modules (15% suite discount)
Full Suite customers: All three modules (20% suite discount)
Consequences
What becomes easier:
- Shipping incrementally — each module ships when ready, not blocked by others
- Pricing flexibility — customers start with one module and expand
- Marketing — each new module release and each new integration is a story to tell
- Competitive positioning — the integrated suite story is unique and defensible
- Cross-sell revenue — existing customers are the warmest leads for new modules
What becomes harder:
- The shared navigation shell must be maintained as a separate library
- Integration events between modules add complexity — the Command Center API grows significantly
- Testing cross-module integrations requires all products to be running
- Versioning the integration API requires care — breaking changes affect multiple products
The release pattern: Every module follows the same versioning pattern:
v1 — Core (ship fast, get customers, validate)
v2 — Operations (build on validated foundation with customer feedback)
v3 — Intelligence (AI and analytics on top of rich data)
Each v-level release is a marketing moment. "Waypoint v2 — now with Project Portfolio Management and Workflow Automation" is a reason to post, announce, and re-engage.