# cloudcannon/platform-documentation architecture

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

- Interactive diagram: https://gitdiagram.com/cloudcannon/platform-documentation
- Repository: https://github.com/cloudcannon/platform-documentation

## Overview

CloudCannon Platform Documentation is a Lume-based documentation site. Readers browse user and developer explanations, guides, glossary entries, release notes, and technical references; reference pages include API operations and generated platform documentation. The graph separates content, page presentation, reference generation, and shared UI. Edges are limited to README statements and visible imports or calls in the supplied excerpts and source index; several major site features are represented by their listed paths, but their internal wiring was not sampled.

Main entry points: [`_includes/layouts/guide.tsx`](https://github.com/cloudcannon/platform-documentation/blob/main/_includes/layouts/guide.tsx) (Guide layout), [`developer/reference/api/_shared/openapi.ts`](https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/api/_shared/openapi.ts) (API reference model), [`_components/Content/RelatedArticles.tsx`](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Content/RelatedArticles.tsx) (Related resources), [`user`](https://github.com/cloudcannon/platform-documentation/tree/main/user) (User content)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Documentation content"]
  node_usercontent["User content"]
  node_devcontent["Developer content"]
  node_glossary["Glossary"]
end

subgraph group_presentation["Site presentation"]
  node_base["Base layout<br/>[base.tsx]"]
  node_guide["Guide layout<br/>[guide.tsx]"]
  node_siteconfig["Page configuration<br/>[markdown-pages.ts]"]
  node_search["Site search<br/>[Search.tsx]"]
  node_footer["Footer<br/>[Footer.tsx]"]
end

subgraph group_reference["Technical reference"]
  node_apiref["API reference model<br/>[openapi.ts]"]
  node_apioperation["API operations<br/>[ApiOperation.tsx]"]
  node_autoref["Generated references"]
  node_refnav["Reference navigation<br/>[buildRefNav.ts]"]
  node_cli["CLI reference data"]
  node_veapi["Visual Editor API docs<br/>[veapi-docs.ts]"]
  node_refitem["Reference entries<br/>[RefItem.tsx]"]
  node_docnav["Reference navigation UI<br/>[DocNav.tsx]"]
end

subgraph group_shared["Shared components"]
  node_codeblock["Code examples<br/>[CodeBlock.tsx]"]
  node_codeutil["Code utilities<br/>[code-util.ts]"]
  node_stringutil["String utilities<br/>[string-util.ts]"]
  node_urlutil["URL utilities<br/>[url-util.ts]"]
  node_related["Related resources"]
end

subgraph group_release["Release history"]
  node_changelogs["Changelog content"]
  node_changelogpage["Changelog index<br/>[changelog.page.ts]"]
  node_changelogparse["Filename parser"]
end

node_readers(("Documentation readers"))

node_readers -->|"browse"| node_usercontent
node_readers -->|"browse"| node_devcontent
node_readers -->|"browse"| node_glossary
node_readers -->|"browse"| node_changelogs
node_usercontent -.->|"renders with"| node_guide
node_devcontent -.->|"renders with"| node_guide
node_guide -->|"uses"| node_urlutil
node_base -->|"imports"| node_footer
node_readers -->|"searches"| node_search
node_apioperation -->|"uses view models"| node_apiref
node_apiref -->|"slugifies with"| node_stringutil
node_siteconfig -->|"imports"| node_apiref
node_refnav -->|"imports"| node_cli
node_docnav -->|"uses navigation data"| node_refnav
node_veapi -->|"supplies reference entries"| node_autoref
node_refitem -.->|"renders reference entries"| node_autoref
node_codeblock -->|"imports"| node_codeutil
node_related -->|"imports"| node_stringutil
node_related -->|"imports"| node_urlutil
node_changelogpage -->|"parses filenames"| node_changelogparse

click node_usercontent "https://github.com/cloudcannon/platform-documentation/tree/main/user"
click node_devcontent "https://github.com/cloudcannon/platform-documentation/tree/main/developer"
click node_glossary "https://github.com/cloudcannon/platform-documentation/tree/main/user/glossary"
click node_base "https://github.com/cloudcannon/platform-documentation/blob/main/_includes/layouts/base.tsx"
click node_guide "https://github.com/cloudcannon/platform-documentation/blob/main/_includes/layouts/guide.tsx"
click node_siteconfig "https://github.com/cloudcannon/platform-documentation/blob/main/_config/markdown-pages.ts"
click node_search "https://github.com/cloudcannon/platform-documentation/blob/main/_components/Layout/Search.tsx"
click node_footer "https://github.com/cloudcannon/platform-documentation/blob/main/_components/Layout/Footer.tsx"
click node_apiref "https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/api/_shared/openapi.ts"
click node_apioperation "https://github.com/cloudcannon/platform-documentation/blob/main/_components/Api/ApiOperation.tsx"
click node_autoref "https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/_shared/referencePageGenerator.ts"
click node_refnav "https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/_shared/buildRefNav.ts"
click node_cli "https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/_shared/command-line-interface.ts"
click node_veapi "https://github.com/cloudcannon/platform-documentation/blob/main/_lib/veapi-docs.ts"
click node_refitem "https://github.com/cloudcannon/platform-documentation/blob/main/_components/Reference/RefItem.tsx"
click node_docnav "https://github.com/cloudcannon/platform-documentation/blob/main/_components/Reference/DocNav.tsx"
click node_codeblock "https://github.com/cloudcannon/platform-documentation/blob/main/_components/CodeBlock.tsx"
click node_codeutil "https://github.com/cloudcannon/platform-documentation/blob/main/_components/utils/code-util.ts"
click node_stringutil "https://github.com/cloudcannon/platform-documentation/blob/main/_components/utils/string-util.ts"
click node_urlutil "https://github.com/cloudcannon/platform-documentation/blob/main/_components/utils/url-util.ts"
click node_related "https://github.com/cloudcannon/platform-documentation/blob/main/_components/Content/RelatedArticles.tsx"
click node_changelogs "https://github.com/cloudcannon/platform-documentation/tree/main/changelogs"
click node_changelogpage "https://github.com/cloudcannon/platform-documentation/blob/main/changelog.page.ts"
click node_changelogparse "https://github.com/cloudcannon/platform-documentation/blob/main/parseChangelogFilename.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_usercontent,node_devcontent,node_glossary toneBlue
class node_base,node_guide,node_siteconfig,node_search,node_footer toneAmber
class node_apiref,node_apioperation,node_autoref,node_refnav,node_cli,node_veapi,node_refitem,node_docnav toneMint
class node_codeblock,node_codeutil,node_stringutil,node_urlutil,node_related toneRose
class node_changelogs,node_changelogpage,node_changelogparse,node_readers toneIndigo
```

## Components

### Documentation content

- [User content](https://github.com/cloudcannon/platform-documentation/tree/main/user): `user`
- [Developer content](https://github.com/cloudcannon/platform-documentation/tree/main/developer): `developer`
- [Glossary](https://github.com/cloudcannon/platform-documentation/tree/main/user/glossary): `user/glossary`

### Site presentation

- [Base layout](https://github.com/cloudcannon/platform-documentation/blob/main/_includes/layouts/base.tsx): `_includes/layouts/base.tsx`
- [Guide layout](https://github.com/cloudcannon/platform-documentation/blob/main/_includes/layouts/guide.tsx): `_includes/layouts/guide.tsx`
- [Page configuration](https://github.com/cloudcannon/platform-documentation/blob/main/_config/markdown-pages.ts): `_config/markdown-pages.ts`
- [Site search](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Layout/Search.tsx): `_components/Layout/Search.tsx`
- [Footer](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Layout/Footer.tsx): `_components/Layout/Footer.tsx`

### Technical reference

- [API reference model](https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/api/_shared/openapi.ts): `developer/reference/api/_shared/openapi.ts`
- [API operations](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Api/ApiOperation.tsx): `_components/Api/ApiOperation.tsx`
- [Generated references](https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/_shared/referencePageGenerator.ts): `developer/reference/_shared/referencePageGenerator.ts`
- [Reference navigation](https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/_shared/buildRefNav.ts): `developer/reference/_shared/buildRefNav.ts`
- [CLI reference data](https://github.com/cloudcannon/platform-documentation/blob/main/developer/reference/_shared/command-line-interface.ts): `developer/reference/_shared/command-line-interface.ts`
- [Visual Editor API docs](https://github.com/cloudcannon/platform-documentation/blob/main/_lib/veapi-docs.ts): `_lib/veapi-docs.ts`
- [Reference entries](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Reference/RefItem.tsx): `_components/Reference/RefItem.tsx`
- [Reference navigation UI](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Reference/DocNav.tsx): `_components/Reference/DocNav.tsx`

### Shared components

- [Code examples](https://github.com/cloudcannon/platform-documentation/blob/main/_components/CodeBlock.tsx): `_components/CodeBlock.tsx`
- [Code utilities](https://github.com/cloudcannon/platform-documentation/blob/main/_components/utils/code-util.ts): `_components/utils/code-util.ts`
- [String utilities](https://github.com/cloudcannon/platform-documentation/blob/main/_components/utils/string-util.ts): `_components/utils/string-util.ts`
- [URL utilities](https://github.com/cloudcannon/platform-documentation/blob/main/_components/utils/url-util.ts): `_components/utils/url-util.ts`
- [Related resources](https://github.com/cloudcannon/platform-documentation/blob/main/_components/Content/RelatedArticles.tsx): `_components/Content/RelatedArticles.tsx`

### Release history

- [Changelog content](https://github.com/cloudcannon/platform-documentation/tree/main/changelogs): `changelogs`
- [Changelog index](https://github.com/cloudcannon/platform-documentation/blob/main/changelog.page.ts): `changelog.page.ts`
- [Filename parser](https://github.com/cloudcannon/platform-documentation/blob/main/parseChangelogFilename.ts): `parseChangelogFilename.ts`

### Other components

- **Documentation readers**

## Connections

- Documentation readers → User content: browse
- Documentation readers → Developer content: browse
- Documentation readers → Glossary: browse
- Documentation readers → Changelog content: browse
- User content → Guide layout: renders with
- Developer content → Guide layout: renders with
- Guide layout → URL utilities: uses (evidence: `_includes/layouts/guide.tsx`)
- Base layout → Footer: imports (evidence: `_includes/layouts/base.tsx`)
- Documentation readers → Site search: searches
- API operations → API reference model: uses view models (evidence: `_components/Api/ApiOperation.tsx`)
- API reference model → String utilities: slugifies with (evidence: `developer/reference/api/_shared/openapi.ts`)
- Page configuration → API reference model: imports (evidence: `_config/markdown-pages.ts`)
- Reference navigation → CLI reference data: imports (evidence: `developer/reference/_shared/buildRefNav.ts`)
- Reference navigation UI → Reference navigation: uses navigation data (evidence: `_components/Reference/DocNav.tsx`)
- Visual Editor API docs → Generated references: supplies reference entries (evidence: `_lib/veapi-docs.ts`)
- Reference entries → Generated references: renders reference entries
- Code examples → Code utilities: imports (evidence: `_components/CodeBlock.tsx`)
- Related resources → String utilities: imports (evidence: `_components/Content/RelatedArticles.tsx`)
- Related resources → URL utilities: imports (evidence: `_components/Content/RelatedArticles.tsx`)
- Changelog index → Filename parser: parses filenames (evidence: `changelog.page.ts`)
