# tx7do/go-wind-cms architecture

> Architecture diagram of the GitHub repository tx7do/go-wind-cms, 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/tx7do/go-wind-cms
- Repository: https://github.com/tx7do/go-wind-cms

## Overview

GoWind Content Hub is a headless, multi-tenant content platform. Administrators configure tenants, identities, permissions, sites, and content; public clients then consume content through the app API. The README documents REST/gRPC APIs and core business services, while the supplied tree chiefly exposes generated API contracts and only a few frontend/runtime excerpts. Accordingly, the graph shows documented product stages and service boundaries, but not unverified internal call chains or persistence wiring.

Main entry points: [`backend/app/admin/service`](https://github.com/tx7do/go-wind-cms/tree/main/backend/app/admin/service) (Admin service), [`backend/app/core/service`](https://github.com/tx7do/go-wind-cms/tree/main/backend/app/core/service) (Core business services), [`backend/api/gen/go/admin/service/v1`](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/admin/service/v1) (Admin API), [`frontend/admin-react/src`](https://github.com/tx7do/go-wind-cms/tree/main/frontend/admin-react/src) (Admin frontend)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_admin["Administration"]
  node_admin_api["Admin API"]
  node_admin_service["Admin service"]
  node_identity["Tenant and identity"]
  node_permission["Permissions and menus"]
end

subgraph group_content["Content lifecycle"]
  node_content_api["Content API"]
  node_content_service["Core business services"]
  node_model["Content models"]
  node_taxonomy["Categories and tags"]
  node_publishing["Pages and posts"]
  node_comments["Comments and interaction"]
end

subgraph group_platform["Platform services"]
  node_auth["Authentication"]
  node_media["Media assets"]
  node_site_language["Sites and languages"]
  node_audit["Audit records"]
end

subgraph group_clients["Client applications"]
  node_admin_frontend["Admin frontend"]
  node_app_frontend["App frontends"]
  node_app_api["App API"]
end

node_administrator(("Administrator"))
node_public_user(("Public user"))
node_database[("Relational database")]

node_administrator -->|"manages"| node_admin_frontend
node_admin_frontend -->|"requests"| node_admin_api
node_admin_api -->|"serves"| node_admin_service
node_admin_service -->|"uses core"| node_content_service
node_admin_service -->|"manages tenants"| node_identity
node_admin_service -->|"configures access"| node_permission
node_admin_service -->|"authenticates"| node_auth
node_admin_service -->|"configures models"| node_model
node_admin_service -->|"manages taxonomy"| node_taxonomy
node_admin_service -->|"manages content"| node_publishing
node_admin_service -->|"manages assets"| node_media
node_admin_service -->|"moderates"| node_comments
node_admin_service -->|"configures sites"| node_site_language
node_admin_service -->|"records activity"| node_audit
node_public_user -->|"browses"| node_app_frontend
node_app_frontend -->|"requests content"| node_app_api
node_app_api -->|"uses core"| node_content_service
node_content_service -.->|"reads and writes"| node_database

click node_admin_api "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/admin/service/v1"
click node_admin_service "https://github.com/tx7do/go-wind-cms/tree/main/backend/app/admin/service"
click node_identity "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/identity/service/v1"
click node_permission "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/permission/service/v1"
click node_auth "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/authentication/service/v1"
click node_content_api "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/content/service/v1"
click node_content_service "https://github.com/tx7do/go-wind-cms/tree/main/backend/app/core/service"
click node_model "https://github.com/tx7do/go-wind-cms/blob/main/backend/api/gen/go/content/service/v1/content_model.pb.go"
click node_taxonomy "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/content/service/v1"
click node_publishing "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/content/service/v1"
click node_media "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/media/service/v1"
click node_comments "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/comment/service/v1"
click node_site_language "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/dict/service/v1"
click node_audit "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/audit/service/v1"
click node_admin_frontend "https://github.com/tx7do/go-wind-cms/tree/main/frontend/admin-react/src"
click node_app_frontend "https://github.com/tx7do/go-wind-cms/tree/main/frontend/app"
click node_app_api "https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/app/service/v1"

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_admin_api,node_admin_service,node_identity,node_permission,node_public_user toneBlue
class node_content_api,node_content_service,node_model,node_taxonomy,node_publishing,node_comments,node_database toneAmber
class node_auth,node_media,node_site_language,node_audit toneMint
class node_admin_frontend,node_app_frontend,node_app_api toneRose
class node_administrator toneIndigo
```

## Components

### Administration

- [Admin API](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/admin/service/v1): `backend/api/gen/go/admin/service/v1`
- [Admin service](https://github.com/tx7do/go-wind-cms/tree/main/backend/app/admin/service): `backend/app/admin/service`
- [Tenant and identity](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/identity/service/v1): `backend/api/gen/go/identity/service/v1`
- [Permissions and menus](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/permission/service/v1): `backend/api/gen/go/permission/service/v1`

### Content lifecycle

- [Content API](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/content/service/v1): `backend/api/gen/go/content/service/v1`
- [Core business services](https://github.com/tx7do/go-wind-cms/tree/main/backend/app/core/service): `backend/app/core/service`
- [Content models](https://github.com/tx7do/go-wind-cms/blob/main/backend/api/gen/go/content/service/v1/content_model.pb.go): `backend/api/gen/go/content/service/v1/content_model.pb.go`
- [Categories and tags](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/content/service/v1): `backend/api/gen/go/content/service/v1`
- [Pages and posts](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/content/service/v1): `backend/api/gen/go/content/service/v1`
- [Comments and interaction](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/comment/service/v1): `backend/api/gen/go/comment/service/v1`

### Platform services

- [Authentication](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/authentication/service/v1): `backend/api/gen/go/authentication/service/v1`
- [Media assets](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/media/service/v1): `backend/api/gen/go/media/service/v1`
- [Sites and languages](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/dict/service/v1): `backend/api/gen/go/dict/service/v1`
- [Audit records](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/audit/service/v1): `backend/api/gen/go/audit/service/v1`

### Client applications

- [Admin frontend](https://github.com/tx7do/go-wind-cms/tree/main/frontend/admin-react/src): `frontend/admin-react/src`
- [App frontends](https://github.com/tx7do/go-wind-cms/tree/main/frontend/app): `frontend/app`
- [App API](https://github.com/tx7do/go-wind-cms/tree/main/backend/api/gen/go/app/service/v1): `backend/api/gen/go/app/service/v1`

### Other components

- **Administrator**
- **Public user**
- **Relational database**

## Connections

- Administrator → Admin frontend: manages
- Admin frontend → Admin API: requests
- Admin API → Admin service: serves
- Admin service → Core business services: uses core
- Admin service → Tenant and identity: manages tenants
- Admin service → Permissions and menus: configures access
- Admin service → Authentication: authenticates
- Admin service → Content models: configures models
- Admin service → Categories and tags: manages taxonomy
- Admin service → Pages and posts: manages content
- Admin service → Media assets: manages assets
- Admin service → Comments and interaction: moderates
- Admin service → Sites and languages: configures sites
- Admin service → Audit records: records activity
- Public user → App frontends: browses
- App frontends → App API: requests content
- App API → Core business services: uses core
- Core business services → Relational database: reads and writes
