# poelaertludo/poelaert-coaching architecture

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

- Interactive diagram: https://gitdiagram.com/poelaertludo/poelaert-coaching
- Repository: https://github.com/poelaertludo/poelaert-coaching

## Overview

Poelaert Coaching is a Dutch-language coaching and consulting website. A visitor explores coaching models or services, opens a model-specific trajectory, and can proceed to a free introductory meeting; the site also presents articles and publications. The main app owns the landing-page experience and service-selection state, while the blog and trajectory views have dedicated components and data. Evidence is limited to the supplied excerpts and source index; other App.tsx capabilities are represented only where visible in the excerpts.

Main entry points: [`src/App.tsx`](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx) (Site and services), [`src/TrajectModal.tsx`](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/TrajectModal.tsx) (Trajectory details), [`src/BlogSection.tsx`](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/BlogSection.tsx) (Article listing), [`src/BlogModal.tsx`](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/BlogModal.tsx) (Article details)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Site experience"]
  node_entry["React entry<br/>[main.tsx]"]
  node_app["Site and services<br/>[App.tsx]"]
end

subgraph group_coaching["Coaching journeys"]
  node_model_catalog["Coaching models<br/>[App.tsx]"]
  node_service_selection["Service selection<br/>[App.tsx]"]
  node_trajectory_data["Trajectory content<br/>[trajecten.ts]"]
  node_trajectory_view["Trajectory details<br/>[TrajectModal.tsx]"]
end

subgraph group_editorial["Articles and publications"]
  node_blog_section["Article listing<br/>[BlogSection.tsx]"]
  node_blog_data["Article content<br/>[blogData.ts]"]
  node_blog_view["Article details<br/>[BlogModal.tsx]"]
  node_publication_pdf["VVT article PDF"]
end

node_visitor(("Website visitor"))
node_appointment(("Appointment booking"))

node_visitor -->|"opens site"| node_entry
node_entry -->|"renders"| node_app
node_app -->|"presents"| node_model_catalog
node_app -->|"manages selection"| node_service_selection
node_app -->|"opens trajectory"| node_trajectory_view
node_app -->|"selects trajectory data"| node_trajectory_data
node_trajectory_view -->|"renders steps"| node_trajectory_data
node_app -->|"renders"| node_blog_section
node_blog_section -->|"lists posts"| node_blog_data
node_blog_section -->|"opens article"| node_blog_view
node_blog_view -->|"links PDF"| node_publication_pdf
node_trajectory_view -->|"links to meeting"| node_appointment
node_blog_view -->|"links to meeting"| node_appointment

click node_entry "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/main.tsx"
click node_app "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx"
click node_model_catalog "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx"
click node_service_selection "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx"
click node_trajectory_data "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/trajecten.ts"
click node_trajectory_view "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/TrajectModal.tsx"
click node_blog_section "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/BlogSection.tsx"
click node_blog_data "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/blogData.ts"
click node_blog_view "https://github.com/poelaertludo/poelaert-coaching/blob/master/src/BlogModal.tsx"
click node_publication_pdf "https://github.com/poelaertludo/poelaert-coaching/blob/master/public/artikels/VVT_MAGAZINE_DECEMBER_2023_Poelaert_Tandarts.pdf"

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_entry,node_app toneBlue
class node_model_catalog,node_service_selection,node_trajectory_data,node_trajectory_view toneAmber
class node_blog_section,node_blog_data,node_blog_view,node_publication_pdf toneMint
class node_visitor,node_appointment toneIndigo
```

## Components

### Site experience

- [React entry](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/main.tsx): `src/main.tsx`
- [Site and services](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx): `src/App.tsx`

### Coaching journeys

- [Coaching models](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx): `src/App.tsx`
- [Service selection](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/App.tsx): `src/App.tsx`
- [Trajectory content](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/trajecten.ts): `src/trajecten.ts`
- [Trajectory details](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/TrajectModal.tsx): `src/TrajectModal.tsx`

### Articles and publications

- [Article listing](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/BlogSection.tsx): `src/BlogSection.tsx`
- [Article content](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/blogData.ts): `src/blogData.ts`
- [Article details](https://github.com/poelaertludo/poelaert-coaching/blob/master/src/BlogModal.tsx): `src/BlogModal.tsx`
- [VVT article PDF](https://github.com/poelaertludo/poelaert-coaching/blob/master/public/artikels/VVT_MAGAZINE_DECEMBER_2023_Poelaert_Tandarts.pdf): `public/artikels/VVT_MAGAZINE_DECEMBER_2023_Poelaert_Tandarts.pdf`

### Other components

- **Website visitor**
- **Appointment booking**

## Connections

- Website visitor → React entry: opens site
- React entry → Site and services: renders (evidence: `src/main.tsx`)
- Site and services → Coaching models: presents (evidence: `src/App.tsx`)
- Site and services → Service selection: manages selection (evidence: `src/App.tsx`)
- Site and services → Trajectory details: opens trajectory (evidence: `src/App.tsx`)
- Site and services → Trajectory content: selects trajectory data (evidence: `src/App.tsx`)
- Trajectory details → Trajectory content: renders steps (evidence: `src/TrajectModal.tsx`)
- Site and services → Article listing: renders (evidence: `src/App.tsx`)
- Article listing → Article content: lists posts (evidence: `src/BlogSection.tsx`)
- Article listing → Article details: opens article (evidence: `src/BlogSection.tsx`)
- Article details → VVT article PDF: links PDF
- Trajectory details → Appointment booking: links to meeting (evidence: `src/TrajectModal.tsx`)
- Article details → Appointment booking: links to meeting (evidence: `src/BlogModal.tsx`)
