# boredmayonnaise/rhymvex architecture

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

- Interactive diagram: https://gitdiagram.com/boredmayonnaise/rhymvex
- Repository: https://github.com/boredmayonnaise/rhymvex

## Overview

Rhymvex is a brand and product agency website presenting its positioning, services, process, and contact options. The visitor browses the home page, reviews service packages, optionally selects outcomes and add-ons in the scope dialog, and follows a generated email enquiry link. The map reflects the sampled page assembly and service-enquiry code; other components are included where the source index or tree indicates a distinct site capability. No README was provided, and unsampled component internals and any backend handling are not inferred.

Main entry points: [`web/app/page.tsx`](https://github.com/boredmayonnaise/rhymvex/blob/main/web/app/page.tsx) (Home page), [`web/lib/services.ts`](https://github.com/boredmayonnaise/rhymvex/blob/main/web/lib/services.ts) (Service content), [`web/components/Services.tsx`](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Services.tsx) (Service packages), [`web/app/layout.tsx`](https://github.com/boredmayonnaise/rhymvex/blob/main/web/app/layout.tsx) (Shared layout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Site experience"]
  node_home["Home page<br/>[page.tsx]"]
  node_navigation["Site navigation<br/>[SiteNav.tsx]"]
  node_hero["Hero<br/>[Hero.tsx]"]
  node_pillars["Brand pillars<br/>[Pillars.tsx]"]
  node_process["Process<br/>[Process.tsx]"]
  node_contact["Contact CTA<br/>[ContactCta.tsx]"]
  node_section["Section shell<br/>[Section.tsx]"]
  node_works["Selected works<br/>[SelectedWorks.tsx]"]
end

subgraph group_services["Services and enquiry"]
  node_services["Service packages<br/>[Services.tsx]"]
  node_scope["Scope builder<br/>[ScopeBuilder.tsx]"]
  node_service_data["Service content<br/>[services.ts]"]
  node_service_json["Package data<br/>[services.json]"]
  node_email(("Email enquiry"))
end

subgraph group_identity["Brand presentation"]
  node_layout["Shared layout<br/>[layout.tsx]"]
  node_mark["Brand marks<br/>[RvMark.tsx]"]
  node_waveform["Waveform motif<br/>[WaveformRhythm.tsx]"]
  node_ornament["Ornamental artwork<br/>[OrnamentGlyph.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_home
node_home -->|"renders"| node_navigation
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_pillars
node_home -->|"renders"| node_services
node_home -->|"renders"| node_process
node_home -->|"renders"| node_contact
node_home -->|"renders"| node_ornament
node_services -->|"renders"| node_scope
node_services -->|"uses"| node_section
node_services -->|"builds enquiry links"| node_service_data
node_scope -->|"builds scope link"| node_service_data
node_service_data -->|"loads"| node_service_json
node_service_data -->|"creates mailto links"| node_email
node_layout -->|"renders"| node_mark
node_layout -->|"renders"| node_waveform
node_layout -->|"reads booking details"| node_service_data
node_works -->|"uses"| node_section

click node_home "https://github.com/boredmayonnaise/rhymvex/blob/main/web/app/page.tsx"
click node_navigation "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/SiteNav.tsx"
click node_hero "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Hero.tsx"
click node_pillars "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Pillars.tsx"
click node_process "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Process.tsx"
click node_contact "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/ContactCta.tsx"
click node_section "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Section.tsx"
click node_works "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/SelectedWorks.tsx"
click node_services "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Services.tsx"
click node_scope "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/ScopeBuilder.tsx"
click node_service_data "https://github.com/boredmayonnaise/rhymvex/blob/main/web/lib/services.ts"
click node_service_json "https://github.com/boredmayonnaise/rhymvex/blob/main/web/content/services.json"
click node_layout "https://github.com/boredmayonnaise/rhymvex/blob/main/web/app/layout.tsx"
click node_mark "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/RvMark.tsx"
click node_waveform "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/WaveformRhythm.tsx"
click node_ornament "https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/OrnamentGlyph.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_navigation,node_hero,node_pillars,node_process,node_contact,node_section,node_works toneBlue
class node_services,node_scope,node_service_data,node_service_json,node_email toneAmber
class node_layout,node_mark,node_waveform,node_ornament toneMint
class node_visitor toneIndigo
```

## Components

### Site experience

- [Home page](https://github.com/boredmayonnaise/rhymvex/blob/main/web/app/page.tsx): `web/app/page.tsx`
- [Site navigation](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/SiteNav.tsx): `web/components/SiteNav.tsx`
- [Hero](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Hero.tsx): `web/components/Hero.tsx`
- [Brand pillars](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Pillars.tsx): `web/components/Pillars.tsx`
- [Process](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Process.tsx): `web/components/Process.tsx`
- [Contact CTA](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/ContactCta.tsx): `web/components/ContactCta.tsx`
- [Section shell](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Section.tsx): `web/components/Section.tsx`
- [Selected works](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/SelectedWorks.tsx): `web/components/SelectedWorks.tsx`

### Services and enquiry

- [Service packages](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/Services.tsx): `web/components/Services.tsx`
- [Scope builder](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/ScopeBuilder.tsx): `web/components/ScopeBuilder.tsx`
- [Service content](https://github.com/boredmayonnaise/rhymvex/blob/main/web/lib/services.ts): `web/lib/services.ts`
- [Package data](https://github.com/boredmayonnaise/rhymvex/blob/main/web/content/services.json): `web/content/services.json`
- **Email enquiry**

### Brand presentation

- [Shared layout](https://github.com/boredmayonnaise/rhymvex/blob/main/web/app/layout.tsx): `web/app/layout.tsx`
- [Brand marks](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/RvMark.tsx): `web/components/RvMark.tsx`
- [Waveform motif](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/WaveformRhythm.tsx): `web/components/WaveformRhythm.tsx`
- [Ornamental artwork](https://github.com/boredmayonnaise/rhymvex/blob/main/web/components/OrnamentGlyph.tsx): `web/components/OrnamentGlyph.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Home page: opens
- Home page → Site navigation: renders (evidence: `web/app/page.tsx`)
- Home page → Hero: renders (evidence: `web/app/page.tsx`)
- Home page → Brand pillars: renders (evidence: `web/app/page.tsx`)
- Home page → Service packages: renders (evidence: `web/app/page.tsx`)
- Home page → Process: renders (evidence: `web/app/page.tsx`)
- Home page → Contact CTA: renders (evidence: `web/app/page.tsx`)
- Home page → Ornamental artwork: renders (evidence: `web/app/page.tsx`)
- Service packages → Scope builder: renders (evidence: `web/components/Services.tsx`)
- Service packages → Section shell: uses (evidence: `web/components/Services.tsx`)
- Service packages → Service content: builds enquiry links (evidence: `web/components/Services.tsx`)
- Scope builder → Service content: builds scope link (evidence: `web/components/ScopeBuilder.tsx`)
- Service content → Package data: loads (evidence: `web/lib/services.ts`)
- Service content → Email enquiry: creates mailto links (evidence: `web/lib/services.ts`)
- Shared layout → Brand marks: renders (evidence: `web/app/layout.tsx`)
- Shared layout → Waveform motif: renders (evidence: `web/app/layout.tsx`)
- Shared layout → Service content: reads booking details (evidence: `web/app/layout.tsx`)
- Selected works → Section shell: uses (evidence: `web/components/SelectedWorks.tsx`)
