# optivuedigital/optivue-os architecture

> Architecture diagram of the GitHub repository optivuedigital/optivue-os, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/optivuedigital/optivue-os
- Repository: https://github.com/optivuedigital/optivue-os

## Overview

Optivue Growth OS is a connected marketing, diagnosis, estimation, pricing, and lead-generation experience. The principal journey moves visitors from proof and transformation content through Growth System diagnosis and a project estimate, into pricing and a contextual proposal or booking conversation. Production JavaScript coordinates the experience and shared prospect context; anonymous journey data is session-persisted. Lead relay submission is optional and documented as inactive until verified. Some feature wiring is inferred only from README capabilities because the corresponding source was not sampled.

Main entry points: [`production/js/optivue.js`](https://github.com/optivuedigital/optivue-os/blob/main/production/js/optivue.js) (Site Runtime), [`production/js/estimator.js`](https://github.com/optivuedigital/optivue-os/blob/main/production/js/estimator.js) (Scope Estimator), [`production/js/context.js`](https://github.com/optivuedigital/optivue-os/blob/main/production/js/context.js) (Shared Context), [`production/js/pricing.js`](https://github.com/optivuedigital/optivue-os/blob/main/production/js/pricing.js) (Pricing Experience)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Visitor Experience"]
  node_site["Public Site<br/>[index.html]"]
  node_runtime["Site Runtime<br/>[optivue.js]"]
end

subgraph group_journey["Growth Journey"]
  node_proof["Work Proof<br/>[index.html]"]
  node_transformations["Transformations<br/>[index.html]"]
  node_growthsystem["Growth System<br/>[growth-system.js]"]
  node_compare["Before/After<br/>[compare-slider.js]"]
  node_estimator["Scope Estimator<br/>[estimator.js]"]
  node_estimatorconfig["Estimator Rules"]
  node_pricing["Pricing Experience<br/>[pricing.js]"]
  node_pricevalues["Price Values<br/>[pricing-values.js]"]
end

subgraph group_context["Prospect Context"]
  node_context["Shared Context<br/>[context.js]"]
  node_session[("Session Storage")]
  node_lead["Lead Capture<br/>[lead-capture.js]"]
  node_analytics["Journey Analytics<br/>[analytics.js]"]
  node_booking["Booking Intent<br/>[booking.js]"]
end

subgraph group_integrations["External Integrations"]
  node_relay["Lead Relay<br/>[worker.js]"]
  node_make["Make Intake"]
  node_calendly["Calendly"]
  node_wix["Wix Adapter<br/>[home-page-code.js]"]
end

node_visitor(("Prospect"))

node_visitor -->|"visits"| node_site
node_site -->|"loads"| node_runtime
node_runtime -->|"initializes"| node_proof
node_runtime -->|"initializes"| node_transformations
node_runtime -->|"initializes"| node_growthsystem
node_runtime -->|"initializes"| node_compare
node_runtime -->|"initializes"| node_estimator
node_runtime -->|"initializes"| node_pricing
node_runtime -->|"initializes"| node_booking
node_visitor -->|"explores"| node_proof
node_visitor -->|"explores"| node_transformations
node_visitor -->|"diagnoses"| node_growthsystem
node_visitor -->|"answers"| node_estimator
node_estimator -->|"reads rules"| node_estimatorconfig
node_estimator -->|"calculates"| node_pricevalues
node_runtime -->|"reads prices"| node_pricevalues
node_visitor -->|"reviews"| node_pricing
node_estimator -.->|"recommends path"| node_pricing
node_growthsystem -->|"records stages"| node_context
node_proof -.->|"records views"| node_context
node_transformations -.->|"records views"| node_context
node_pricing -.->|"records plans"| node_context
node_estimator -->|"tracks events"| node_analytics
node_visitor -->|"submits brief"| node_lead
node_lead -->|"reads and updates"| node_context
node_context -->|"persists anonymous"| node_session
node_visitor -->|"requests call"| node_booking
node_booking -->|"opens booking"| node_calendly
node_lead -.->|"posts brief"| node_relay
node_relay -.->|"forwards payload"| node_make
node_wix -.->|"opens booking"| node_calendly

click node_site "https://github.com/optivuedigital/optivue-os/blob/main/production/index.html"
click node_runtime "https://github.com/optivuedigital/optivue-os/blob/main/production/js/optivue.js"
click node_proof "https://github.com/optivuedigital/optivue-os/blob/main/production/index.html"
click node_transformations "https://github.com/optivuedigital/optivue-os/blob/main/production/index.html"
click node_growthsystem "https://github.com/optivuedigital/optivue-os/blob/main/production/js/components/growth-system.js"
click node_compare "https://github.com/optivuedigital/optivue-os/blob/main/production/js/components/compare-slider.js"
click node_estimator "https://github.com/optivuedigital/optivue-os/blob/main/production/js/estimator.js"
click node_estimatorconfig "https://github.com/optivuedigital/optivue-os/blob/main/production/js/estimator-config.js"
click node_pricing "https://github.com/optivuedigital/optivue-os/blob/main/production/js/pricing.js"
click node_pricevalues "https://github.com/optivuedigital/optivue-os/blob/main/production/js/pricing-values.js"
click node_context "https://github.com/optivuedigital/optivue-os/blob/main/production/js/context.js"
click node_lead "https://github.com/optivuedigital/optivue-os/blob/main/production/js/lead-capture.js"
click node_analytics "https://github.com/optivuedigital/optivue-os/blob/main/production/js/analytics.js"
click node_booking "https://github.com/optivuedigital/optivue-os/blob/main/production/js/booking.js"
click node_relay "https://github.com/optivuedigital/optivue-os/blob/main/backend/lead-intake/worker.js"
click node_wix "https://github.com/optivuedigital/optivue-os/blob/main/adapters/wix/home-page-code.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_site,node_runtime toneBlue
class node_proof,node_transformations,node_growthsystem,node_compare,node_estimator,node_estimatorconfig,node_pricing,node_pricevalues toneAmber
class node_context,node_session,node_lead,node_analytics,node_booking toneMint
class node_relay,node_make,node_calendly,node_wix toneRose
class node_visitor toneIndigo
```

## Components

### Visitor Experience

- [Public Site](https://github.com/optivuedigital/optivue-os/blob/main/production/index.html): `production/index.html`
- [Site Runtime](https://github.com/optivuedigital/optivue-os/blob/main/production/js/optivue.js): `production/js/optivue.js`

### Growth Journey

- [Work Proof](https://github.com/optivuedigital/optivue-os/blob/main/production/index.html): `production/index.html`
- [Transformations](https://github.com/optivuedigital/optivue-os/blob/main/production/index.html): `production/index.html`
- [Growth System](https://github.com/optivuedigital/optivue-os/blob/main/production/js/components/growth-system.js): `production/js/components/growth-system.js`
- [Before/After](https://github.com/optivuedigital/optivue-os/blob/main/production/js/components/compare-slider.js): `production/js/components/compare-slider.js`
- [Scope Estimator](https://github.com/optivuedigital/optivue-os/blob/main/production/js/estimator.js): `production/js/estimator.js`
- [Estimator Rules](https://github.com/optivuedigital/optivue-os/blob/main/production/js/estimator-config.js): `production/js/estimator-config.js`
- [Pricing Experience](https://github.com/optivuedigital/optivue-os/blob/main/production/js/pricing.js): `production/js/pricing.js`
- [Price Values](https://github.com/optivuedigital/optivue-os/blob/main/production/js/pricing-values.js): `production/js/pricing-values.js`

### Prospect Context

- [Shared Context](https://github.com/optivuedigital/optivue-os/blob/main/production/js/context.js): `production/js/context.js`
- **Session Storage**
- [Lead Capture](https://github.com/optivuedigital/optivue-os/blob/main/production/js/lead-capture.js): `production/js/lead-capture.js`
- [Journey Analytics](https://github.com/optivuedigital/optivue-os/blob/main/production/js/analytics.js): `production/js/analytics.js`
- [Booking Intent](https://github.com/optivuedigital/optivue-os/blob/main/production/js/booking.js): `production/js/booking.js`

### External Integrations

- [Lead Relay](https://github.com/optivuedigital/optivue-os/blob/main/backend/lead-intake/worker.js): `backend/lead-intake/worker.js`
- **Make Intake**
- **Calendly**
- [Wix Adapter](https://github.com/optivuedigital/optivue-os/blob/main/adapters/wix/home-page-code.js): `adapters/wix/home-page-code.js`

### Other components

- **Prospect**

## Connections

- Prospect → Public Site: visits
- Public Site → Site Runtime: loads
- Site Runtime → Work Proof: initializes
- Site Runtime → Transformations: initializes
- Site Runtime → Growth System: initializes
- Site Runtime → Before/After: initializes
- Site Runtime → Scope Estimator: initializes
- Site Runtime → Pricing Experience: initializes
- Site Runtime → Booking Intent: initializes
- Prospect → Work Proof: explores
- Prospect → Transformations: explores
- Prospect → Growth System: diagnoses
- Prospect → Scope Estimator: answers
- Scope Estimator → Estimator Rules: reads rules
- Scope Estimator → Price Values: calculates
- Site Runtime → Price Values: reads prices
- Prospect → Pricing Experience: reviews
- Scope Estimator → Pricing Experience: recommends path
- Growth System → Shared Context: records stages
- Work Proof → Shared Context: records views
- Transformations → Shared Context: records views
- Pricing Experience → Shared Context: records plans
- Scope Estimator → Journey Analytics: tracks events
- Prospect → Lead Capture: submits brief
- Lead Capture → Shared Context: reads and updates
- Shared Context → Session Storage: persists anonymous
- Prospect → Booking Intent: requests call
- Booking Intent → Calendly: opens booking
- Lead Capture → Lead Relay: posts brief
- Lead Relay → Make Intake: forwards payload
- Wix Adapter → Calendly: opens booking
