# zepel8/growdex-cms architecture

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

- Interactive diagram: https://gitdiagram.com/zepel8/growdex-cms
- Repository: https://github.com/zepel8/growdex-cms

## Overview

Growdex CMS is a Payload-backed enterprise content and growth-operations application. Operators manage editorial content, catalog data, SEO work, and inquiries; public-site consumers receive headless content and submit traffic or inquiry data. In the growth workflow, normalized connector data feeds rules, which produce opportunities for operator review and AI-assisted drafts; drafts do not publish source content directly. The graph preserves README-documented capabilities, but several handler and dashboard implementations were not sampled, so uncertain internal wiring is omitted.

Main entry points: [`src/payload/collections`](https://github.com/zepel8/growdex-cms/tree/main/src/payload/collections) (Content and Catalog), [`src/lib/db`](https://github.com/zepel8/growdex-cms/tree/main/src/lib/db) (PostgreSQL Data), [`src/app/(growdex)/dashboard/page.tsx`](https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/dashboard/page.tsx) (Growth Dashboard), [`src/payload/admin`](https://github.com/zepel8/growdex-cms/tree/main/src/payload/admin) (Payload Admin)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_editorial["Editorial and Delivery"]
  node_payload_admin["Payload Admin"]
  node_content_model["Content and Catalog"]
  node_headless_api["Headless APIs"]
  node_headless_lib["Headless Services"]
end

subgraph group_growth["Growth Operations"]
  node_dashboard["Growth Dashboard<br/>[page.tsx]"]
  node_rules["SEO Rules"]
  node_opportunities["Opportunities"]
  node_ai_drafts["AI Drafts"]
  node_operator_actions["Operator Actions"]
end

subgraph group_ingest["Data and Integrations"]
  node_traffic_route["Traffic Beacon<br/>[route.ts]"]
  node_traffic_handler["Traffic Handler<br/>[handler.ts]"]
  node_traffic_data["Traffic Services"]
  node_connectors["Data Connectors"]
  node_inquiries["Inquiry Operations"]
end

subgraph group_platform["Application Platform"]
  node_database[("PostgreSQL Data")]
  node_payload_api["Payload REST API<br/>[route.ts]"]
end

node_operator(("Operator"))
node_consumer(("Website Consumer"))
node_search_console(("Search Console"))
node_ai_provider(("AI Providers"))

node_operator -->|"edits content"| node_payload_admin
node_payload_admin -->|"manages records"| node_content_model
node_content_model -->|"persists content"| node_database
node_consumer -->|"requests content"| node_headless_api
node_headless_api -->|"delegates reads"| node_headless_lib
node_headless_lib -->|"projects content"| node_content_model
node_operator -->|"reviews growth"| node_dashboard
node_dashboard -->|"runs rules"| node_rules
node_rules -->|"creates findings"| node_opportunities
node_opportunities -->|"provides review context"| node_ai_drafts
node_ai_drafts -.->|"requests generation"| node_ai_provider
node_dashboard -->|"submits decisions"| node_operator_actions
node_operator_actions -->|"updates approved content"| node_content_model
node_search_console -.->|"supplies observations"| node_connectors
node_connectors -->|"stores normalized data"| node_database
node_consumer -->|"posts pageview"| node_traffic_route
node_traffic_route -->|"delegates request"| node_traffic_handler
node_traffic_handler -->|"records traffic"| node_traffic_data
node_traffic_data -->|"persists events"| node_database
node_consumer -->|"submits inquiry"| node_inquiries
node_inquiries -->|"stores inquiry"| node_database
node_operator -->|"uses API"| node_payload_api

click node_payload_admin "https://github.com/zepel8/growdex-cms/tree/main/src/payload/admin"
click node_content_model "https://github.com/zepel8/growdex-cms/tree/main/src/payload/collections"
click node_headless_api "https://github.com/zepel8/growdex-cms/tree/main/src/payload/headless"
click node_headless_lib "https://github.com/zepel8/growdex-cms/tree/main/src/lib/headless-cms"
click node_dashboard "https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/dashboard/page.tsx"
click node_rules "https://github.com/zepel8/growdex-cms/tree/main/src/lib/rules"
click node_opportunities "https://github.com/zepel8/growdex-cms/tree/main/src/lib/opportunities"
click node_ai_drafts "https://github.com/zepel8/growdex-cms/tree/main/src/lib/ai"
click node_operator_actions "https://github.com/zepel8/growdex-cms/tree/main/src/lib/operator-actions"
click node_traffic_route "https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/api/track/route.ts"
click node_traffic_handler "https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/api/track/handler.ts"
click node_traffic_data "https://github.com/zepel8/growdex-cms/tree/main/src/lib/traffic"
click node_connectors "https://github.com/zepel8/growdex-cms/tree/main/src/lib/connectors"
click node_inquiries "https://github.com/zepel8/growdex-cms/tree/main/src/lib/inquiries"
click node_database "https://github.com/zepel8/growdex-cms/tree/main/src/lib/db"
click node_payload_api "https://github.com/zepel8/growdex-cms/blob/main/src/app/(payload)/api/%5B...slug%5D/route.ts"

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_payload_admin,node_content_model,node_headless_api,node_headless_lib toneBlue
class node_dashboard,node_rules,node_opportunities,node_ai_drafts,node_operator_actions toneAmber
class node_traffic_route,node_traffic_handler,node_traffic_data,node_connectors,node_inquiries toneMint
class node_database,node_payload_api toneRose
class node_operator,node_consumer,node_search_console,node_ai_provider toneIndigo
```

## Components

### Editorial and Delivery

- [Payload Admin](https://github.com/zepel8/growdex-cms/tree/main/src/payload/admin): `src/payload/admin`
- [Content and Catalog](https://github.com/zepel8/growdex-cms/tree/main/src/payload/collections): `src/payload/collections`
- [Headless APIs](https://github.com/zepel8/growdex-cms/tree/main/src/payload/headless): `src/payload/headless`
- [Headless Services](https://github.com/zepel8/growdex-cms/tree/main/src/lib/headless-cms): `src/lib/headless-cms`

### Growth Operations

- [Growth Dashboard](https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/dashboard/page.tsx): `src/app/(growdex)/dashboard/page.tsx`
- [SEO Rules](https://github.com/zepel8/growdex-cms/tree/main/src/lib/rules): `src/lib/rules`
- [Opportunities](https://github.com/zepel8/growdex-cms/tree/main/src/lib/opportunities): `src/lib/opportunities`
- [AI Drafts](https://github.com/zepel8/growdex-cms/tree/main/src/lib/ai): `src/lib/ai`
- [Operator Actions](https://github.com/zepel8/growdex-cms/tree/main/src/lib/operator-actions): `src/lib/operator-actions`

### Data and Integrations

- [Traffic Beacon](https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/api/track/route.ts): `src/app/(growdex)/api/track/route.ts`
- [Traffic Handler](https://github.com/zepel8/growdex-cms/blob/main/src/app/(growdex)/api/track/handler.ts): `src/app/(growdex)/api/track/handler.ts`
- [Traffic Services](https://github.com/zepel8/growdex-cms/tree/main/src/lib/traffic): `src/lib/traffic`
- [Data Connectors](https://github.com/zepel8/growdex-cms/tree/main/src/lib/connectors): `src/lib/connectors`
- [Inquiry Operations](https://github.com/zepel8/growdex-cms/tree/main/src/lib/inquiries): `src/lib/inquiries`

### Application Platform

- [PostgreSQL Data](https://github.com/zepel8/growdex-cms/tree/main/src/lib/db): `src/lib/db`
- [Payload REST API](https://github.com/zepel8/growdex-cms/blob/main/src/app/(payload)/api/%5B...slug%5D/route.ts): `src/app/(payload)/api/[...slug]/route.ts`

### Other components

- **Operator**
- **Website Consumer**
- **Search Console**
- **AI Providers**

## Connections

- Operator → Payload Admin: edits content
- Payload Admin → Content and Catalog: manages records
- Content and Catalog → PostgreSQL Data: persists content
- Website Consumer → Headless APIs: requests content
- Headless APIs → Headless Services: delegates reads
- Headless Services → Content and Catalog: projects content
- Operator → Growth Dashboard: reviews growth
- Growth Dashboard → SEO Rules: runs rules
- SEO Rules → Opportunities: creates findings
- Opportunities → AI Drafts: provides review context
- AI Drafts → AI Providers: requests generation
- Growth Dashboard → Operator Actions: submits decisions
- Operator Actions → Content and Catalog: updates approved content
- Search Console → Data Connectors: supplies observations
- Data Connectors → PostgreSQL Data: stores normalized data
- Website Consumer → Traffic Beacon: posts pageview
- Traffic Beacon → Traffic Handler: delegates request
- Traffic Handler → Traffic Services: records traffic
- Traffic Services → PostgreSQL Data: persists events
- Website Consumer → Inquiry Operations: submits inquiry
- Inquiry Operations → PostgreSQL Data: stores inquiry
- Operator → Payload REST API: uses API
