# podman-container-tools/podman.io architecture

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

- Interactive diagram: https://gitdiagram.com/podman-container-tools/podman.io
- Repository: https://github.com/podman-container-tools/podman.io

## Overview

Podman.io is a Docusaurus website presenting Podman product information, downloads, getting-started resources, and community material. Visitors browse the main pages for product features and resources; the community-meetings archive adds meeting notes, recordings, timestamp seeking, and transcript speaker filtering. Page content is largely maintained as data under static/data. The graph preserves those documented capabilities and the sampled transcript interaction; some page-to-component wiring is not visible in the excerpts, so those connections are left out.

Main entry points: [`src/pages/community/meetings.tsx`](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/community/meetings.tsx) (Meetings Archive), [`src/components/content/TranscriptViewer/index.tsx`](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/TranscriptViewer/index.tsx) (Transcript Viewer), [`src/pages/index.tsx`](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/index.tsx) (Home Page), [`src/pages/features.tsx`](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/features.tsx) (Features)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Product Website"]
  node_home["Home Page<br/>[index.tsx]"]
  node_downloads["Downloads<br/>[downloads.tsx]"]
  node_features["Features<br/>[features.tsx]"]
  node_getstarted["Get Started<br/>[get-started.tsx]"]
  node_installation["Installation<br/>[installation.tsx]"]
  node_communitypage["Community Page<br/>[community.tsx]"]
  node_blog["Blog Articles<br/>[index.tsx]"]
  node_literature["Literature Carousel<br/>[index.tsx]"]
end

subgraph group_content["Page Content"]
  node_homecontent["Home Content<br/>[home.ts]"]
  node_globaldata["Shared Site Data<br/>[global.ts]"]
  node_communitydata["Community Content<br/>[community.ts]"]
  node_featuredata["Feature Content<br/>[features.ts]"]
  node_resourcebox["Resource Links<br/>[data.ts]"]
  node_featurecarouseldata["CLI Workflow Content<br/>[data.ts]"]
  node_sponsorcontent["Sponsor Content<br/>[data.ts]"]
end

subgraph group_community["Community Archive"]
  node_meetingspage["Meetings Archive<br/>[meetings.tsx]"]
  node_meetingnotes["Meeting Notes Registry<br/>[index.ts]"]
  node_meetingvideo["Meeting Video Player"]
  node_transcript["Transcript Viewer<br/>[index.tsx]"]
  node_speakerfilter["Speaker Filter"]
  node_meetingutils["Meeting Seek Utilities"]
  node_videooffset["Video Offset Context"]
end

subgraph group_docs["Documentation UI"]
  node_doccontent["Document Content<br/>[index.tsx]"]
  node_docsidebar["Document Sidebar<br/>[index.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"browses"| node_home
node_visitor -->|"opens"| node_downloads
node_visitor -->|"explores"| node_features
node_visitor -->|"starts with"| node_getstarted
node_visitor -->|"visits"| node_communitypage
node_visitor -->|"opens archive"| node_meetingspage
node_visitor -.->|"reads docs"| node_doccontent
node_home -.->|"presents"| node_homecontent
node_homecontent -->|"imports versions"| node_globaldata
node_communitydata -->|"imports meeting URL"| node_globaldata
node_communitypage -.->|"presents"| node_communitydata
node_features -.->|"presents"| node_featuredata
node_meetingspage -->|"archives notes"| node_meetingnotes
node_meetingspage -->|"provides recordings"| node_meetingvideo
node_meetingspage -->|"provides transcript"| node_transcript
node_transcript -->|"renders filter"| node_speakerfilter
node_transcript -->|"dispatches seek"| node_meetingutils
node_transcript -->|"reads offset"| node_videooffset
node_meetingnotes -.->|"registers notes"| node_meetingspage
node_getstarted -.->|"offers setup"| node_installation

click node_home "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/index.tsx"
click node_downloads "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/downloads.tsx"
click node_features "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/features.tsx"
click node_getstarted "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/get-started.tsx"
click node_installation "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/getting-started/installation.tsx"
click node_communitypage "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/community.tsx"
click node_homecontent "https://github.com/podman-container-tools/podman.io/blob/main/static/data/home.ts"
click node_globaldata "https://github.com/podman-container-tools/podman.io/blob/main/static/data/global.ts"
click node_communitydata "https://github.com/podman-container-tools/podman.io/blob/main/static/data/community.ts"
click node_featuredata "https://github.com/podman-container-tools/podman.io/blob/main/static/data/features.ts"
click node_resourcebox "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/BasicResourcesBox/data.ts"
click node_featurecarouseldata "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/FeaturesCarousel/data.ts"
click node_sponsorcontent "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/ThankYouSection/data.ts"
click node_meetingspage "https://github.com/podman-container-tools/podman.io/blob/main/src/pages/community/meetings.tsx"
click node_meetingnotes "https://github.com/podman-container-tools/podman.io/blob/main/static/data/meetings/notes/index.ts"
click node_meetingvideo "https://github.com/podman-container-tools/podman.io/blob/main/src/components/community/meetings/MeetingVideoPlayer.tsx"
click node_transcript "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/TranscriptViewer/index.tsx"
click node_speakerfilter "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/TranscriptViewer/SpeakerDropdown.tsx"
click node_meetingutils "https://github.com/podman-container-tools/podman.io/blob/main/src/utils/communityMeetings.ts"
click node_videooffset "https://github.com/podman-container-tools/podman.io/blob/main/src/utils/VideoOffsetContext.ts"
click node_blog "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/BlogArticlesList/index.tsx"
click node_literature "https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/LiteratureCarousel/index.tsx"
click node_doccontent "https://github.com/podman-container-tools/podman.io/blob/main/src/theme/DocItem/Content/index.tsx"
click node_docsidebar "https://github.com/podman-container-tools/podman.io/blob/main/src/theme/DocSidebar/index.tsx"

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_home,node_downloads,node_features,node_getstarted,node_installation,node_communitypage,node_blog,node_literature toneBlue
class node_homecontent,node_globaldata,node_communitydata,node_featuredata,node_resourcebox,node_featurecarouseldata,node_sponsorcontent toneAmber
class node_meetingspage,node_meetingnotes,node_meetingvideo,node_transcript,node_speakerfilter,node_meetingutils,node_videooffset toneMint
class node_doccontent,node_docsidebar toneRose
class node_visitor toneIndigo
```

## Components

### Product Website

- [Home Page](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/index.tsx): `src/pages/index.tsx`
- [Downloads](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/downloads.tsx): `src/pages/downloads.tsx`
- [Features](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/features.tsx): `src/pages/features.tsx`
- [Get Started](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/get-started.tsx): `src/pages/get-started.tsx`
- [Installation](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/getting-started/installation.tsx): `src/pages/getting-started/installation.tsx`
- [Community Page](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/community.tsx): `src/pages/community.tsx`
- [Blog Articles](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/BlogArticlesList/index.tsx): `src/components/content/BlogArticlesList/index.tsx`
- [Literature Carousel](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/LiteratureCarousel/index.tsx): `src/components/content/LiteratureCarousel/index.tsx`

### Page Content

- [Home Content](https://github.com/podman-container-tools/podman.io/blob/main/static/data/home.ts): `static/data/home.ts`
- [Shared Site Data](https://github.com/podman-container-tools/podman.io/blob/main/static/data/global.ts): `static/data/global.ts`
- [Community Content](https://github.com/podman-container-tools/podman.io/blob/main/static/data/community.ts): `static/data/community.ts`
- [Feature Content](https://github.com/podman-container-tools/podman.io/blob/main/static/data/features.ts): `static/data/features.ts`
- [Resource Links](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/BasicResourcesBox/data.ts): `src/components/content/BasicResourcesBox/data.ts`
- [CLI Workflow Content](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/FeaturesCarousel/data.ts): `src/components/content/FeaturesCarousel/data.ts`
- [Sponsor Content](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/ThankYouSection/data.ts): `src/components/content/ThankYouSection/data.ts`

### Community Archive

- [Meetings Archive](https://github.com/podman-container-tools/podman.io/blob/main/src/pages/community/meetings.tsx): `src/pages/community/meetings.tsx`
- [Meeting Notes Registry](https://github.com/podman-container-tools/podman.io/blob/main/static/data/meetings/notes/index.ts): `static/data/meetings/notes/index.ts`
- [Meeting Video Player](https://github.com/podman-container-tools/podman.io/blob/main/src/components/community/meetings/MeetingVideoPlayer.tsx): `src/components/community/meetings/MeetingVideoPlayer.tsx`
- [Transcript Viewer](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/TranscriptViewer/index.tsx): `src/components/content/TranscriptViewer/index.tsx`
- [Speaker Filter](https://github.com/podman-container-tools/podman.io/blob/main/src/components/content/TranscriptViewer/SpeakerDropdown.tsx): `src/components/content/TranscriptViewer/SpeakerDropdown.tsx`
- [Meeting Seek Utilities](https://github.com/podman-container-tools/podman.io/blob/main/src/utils/communityMeetings.ts): `src/utils/communityMeetings.ts`
- [Video Offset Context](https://github.com/podman-container-tools/podman.io/blob/main/src/utils/VideoOffsetContext.ts): `src/utils/VideoOffsetContext.ts`

### Documentation UI

- [Document Content](https://github.com/podman-container-tools/podman.io/blob/main/src/theme/DocItem/Content/index.tsx): `src/theme/DocItem/Content/index.tsx`
- [Document Sidebar](https://github.com/podman-container-tools/podman.io/blob/main/src/theme/DocSidebar/index.tsx): `src/theme/DocSidebar/index.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Home Page: browses
- Visitor → Downloads: opens
- Visitor → Features: explores
- Visitor → Get Started: starts with
- Visitor → Community Page: visits
- Visitor → Meetings Archive: opens archive (evidence: `README.md`)
- Visitor → Document Content: reads docs
- Home Page → Home Content: presents
- Home Content → Shared Site Data: imports versions (evidence: `static/data/home.ts`)
- Community Content → Shared Site Data: imports meeting URL (evidence: `static/data/community.ts`)
- Community Page → Community Content: presents
- Features → Feature Content: presents
- Meetings Archive → Meeting Notes Registry: archives notes (evidence: `README.md`)
- Meetings Archive → Meeting Video Player: provides recordings (evidence: `README.md`)
- Meetings Archive → Transcript Viewer: provides transcript (evidence: `README.md`)
- Transcript Viewer → Speaker Filter: renders filter (evidence: `src/components/content/TranscriptViewer/index.tsx`)
- Transcript Viewer → Meeting Seek Utilities: dispatches seek (evidence: `src/components/content/TranscriptViewer/index.tsx`)
- Transcript Viewer → Video Offset Context: reads offset (evidence: `src/components/content/TranscriptViewer/index.tsx`)
- Meeting Notes Registry → Meetings Archive: registers notes
- Get Started → Installation: offers setup
