# ayush1974-rgb/ai_tronics_website architecture

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

- Interactive diagram: https://gitdiagram.com/ayush1974-rgb/ai_tronics_website
- Repository: https://github.com/ayush1974-rgb/ai_tronics_website

## Overview

#### Purpose and Runtime
This is a single-page, visual/marketing-style Next.js application. The App Router entry point is `app/page.tsx`, with document-level setup in `app/layout.tsx` and global styling in `app/globals.css`. `next.config.mjs` and `package.json` define the Node/Next build runtime; no backend, API routes, database, or external service integration is present in the repository tree.

#### Application Shell and Entry Flow
`app/layout.tsx` establishes the shared page shell and is the boundary for global providers, fonts, and styles. `app/page.tsx` is the primary composition root: it assembles the landing experience from page-level sections and shared visual controls.
- `app/layout.tsx`
- `app/page.tsx`
- `app/globals.css`

#### Landing and Content Sections
The main page is organized as independently rendered content bands rather than routes or data-driven CMS entities. Core stages likely include hero/landing presentation, about, events, gallery, team, vibe, and contact content. Each section owns its markup and presentation data, making `app/page.tsx` the integration point for ordering and cross-section wiring.
- `components/hero-section.tsx`
- `components/about-section.tsx`
- `components/events-section.tsx`
- `components/contact-section.tsx`

#### Navigation and Page Interaction Layer
Navigation is implemented as page-local UI that likely scrolls or targets sections within the single landing page. A section menu, global navigation, footer, preloader, custom cursor, and theme provider form the persistent interaction layer around content. These components are key boundaries for browser-only behavior and page lifecycle effects.
- `components/navigation.tsx`
- `components/section-menu.tsx`
- `components/preloader.tsx`
- `components/theme-provider.tsx`

#### Visual Effects and Gallery Pipeline
Gallery content is served as static assets under `public/gallery`, separated by content type. The gallery presentation has both conventional and “infinite” variants; `lib/gallery-canvas.ts` is the notable rendering abstraction and likely encapsulates canvas-oriented gallery/effect behavior. Particle backgrounds and custom cursor effects are separate visual subsystems rather than application data services.
- `components/gallery-section.tsx`
- `components/infinite-gallery-section.tsx`
- `lib/gallery-canvas.ts`
- `public/gallery/infinite`

#### UI Foundation and Styling Boundary
Reusable primitives are centralized in `components/ui`, providing the shared component layer beneath page-specific sections. Styling is split between App Router globals and a legacy/shared global stylesheet location, while utility composition is centralized in `lib/utils.ts`. The UI directory appears to be a local component library, not an external API boundary.
- `components/ui/button.tsx`
- `components/ui/dialog.tsx`
- `lib/utils.ts`
- `styles/globals.css`

#### Assets and Deployment Characteristics
All visible media appears locally hosted from `public/gallery`, including event, landing, headshot, and infinite-gallery collections. The application can therefore be deployed as a standard Next.js frontend without required service credentials or runtime data dependencies evident from the tree.
- `public/gallery/events`
- `public/gallery/heads`
- `public/gallery/landing`

Main entry points: [`app/page.tsx`](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/page.tsx) (Landing page), [`app/layout.tsx`](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/layout.tsx) (Root layout), [`components/gallery-section.tsx`](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/gallery-section.tsx) (Gallery section), [`components/infinite-gallery-section.tsx`](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/infinite-gallery-section.tsx) (Infinite gallery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Next.js Runtime"]
  node_next_runtime{{"Node / Next.js build<br/>runtime<br/>[package.json]"}}
end

subgraph group_shell["Application Shell"]
  node_layout["Root layout<br/>App Router layout<br/>[layout.tsx]"]
  node_page["Landing page<br/>composition root<br/>[page.tsx]"]
  node_navigation["Navigation<br/>page interaction<br/>[navigation.tsx]"]
  node_section_menu["Section menu<br/>page interaction<br/>[section-menu.tsx]"]
  node_preloader["Preloader<br/>lifecycle UI<br/>[preloader.tsx]"]
  node_theme_provider["Theme provider<br/>[theme-provider.tsx]"]
end

subgraph group_content["Landing Content"]
  node_hero["Hero section<br/>landing section<br/>[hero-section.tsx]"]
  node_about["About section<br/>landing section<br/>[about-section.tsx]"]
  node_events["Events section<br/>landing section<br/>[events-section.tsx]"]
  node_contact["Contact section<br/>landing section"]
end

subgraph group_visuals["Visual Systems"]
  node_gallery["Gallery section<br/>landing section"]
  node_infinite_gallery["Infinite gallery<br/>interactive gallery"]
  node_gallery_canvas["Gallery canvas<br/>rendering abstraction<br/>[gallery-canvas.ts]"]
  node_gallery_assets["Gallery media<br/>static assets"]
  node_event_assets["Event media<br/>static assets"]
  node_landing_assets["Landing media<br/>static assets"]
  node_headshot_assets["Headshot media<br/>static assets"]
end

subgraph group_foundation["UI &amp; Styling"]
  node_global_styles["App global styles<br/>stylesheet<br/>[globals.css]"]
  node_ui_primitives["UI primitives<br/>local component library<br/>[button.tsx]"]
  node_dialog["Dialog primitive<br/>UI primitive<br/>[dialog.tsx]"]
  node_utils["UI utilities<br/>utility composition<br/>[utils.ts]"]
  node_shared_styles["Shared global styles<br/>stylesheet<br/>[globals.css]"]
end

node_next_runtime -->|"runs"| node_layout
node_layout -->|"hosts"| node_page
node_layout -->|"provides"| node_theme_provider
node_layout -->|"loads"| node_global_styles
node_page -->|"composes"| node_hero
node_page -->|"composes"| node_about
node_page -->|"composes"| node_events
node_page -->|"composes"| node_contact
node_page -->|"composes"| node_gallery
node_page -->|"composes"| node_infinite_gallery
node_page -->|"includes"| node_navigation
node_page -->|"includes"| node_section_menu
node_page -->|"includes"| node_preloader
node_navigation -.->|"targets"| node_hero
node_section_menu -.->|"targets sections"| node_events
node_gallery -->|"uses"| node_event_assets
node_gallery -->|"uses"| node_headshot_assets
node_hero -->|"uses"| node_landing_assets
node_infinite_gallery -->|"renders through"| node_gallery_canvas
node_infinite_gallery -->|"uses"| node_gallery_assets
node_ui_primitives -->|"uses"| node_utils
node_dialog -->|"uses"| node_utils
node_page -.->|"uses shared controls"| node_ui_primitives
node_page -.->|"shares styling"| node_shared_styles

click node_next_runtime "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/package.json"
click node_layout "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/layout.tsx"
click node_page "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/page.tsx"
click node_global_styles "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/globals.css"
click node_hero "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/hero-section.tsx"
click node_about "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/about-section.tsx"
click node_events "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/events-section.tsx"
click node_contact "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/contact-section.tsx"
click node_navigation "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/navigation.tsx"
click node_section_menu "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/section-menu.tsx"
click node_preloader "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/preloader.tsx"
click node_theme_provider "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/theme-provider.tsx"
click node_gallery "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/gallery-section.tsx"
click node_infinite_gallery "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/infinite-gallery-section.tsx"
click node_gallery_canvas "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/lib/gallery-canvas.ts"
click node_gallery_assets "https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/infinite"
click node_ui_primitives "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/ui/button.tsx"
click node_dialog "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/ui/dialog.tsx"
click node_utils "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/lib/utils.ts"
click node_shared_styles "https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/styles/globals.css"
click node_event_assets "https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/events"
click node_landing_assets "https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/landing"
click node_headshot_assets "https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/heads"

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_next_runtime toneBlue
class node_layout,node_page,node_navigation,node_section_menu,node_preloader,node_theme_provider toneAmber
class node_hero,node_about,node_events,node_contact toneMint
class node_gallery,node_infinite_gallery,node_gallery_canvas,node_gallery_assets,node_event_assets,node_landing_assets,node_headshot_assets toneRose
class node_global_styles,node_ui_primitives,node_dialog,node_utils,node_shared_styles toneIndigo
```

## Components

### Next.js Runtime

- [Node / Next.js build](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/package.json): runtime · Builds and serves the standalone frontend. · `package.json`

### Application Shell

- [Root layout](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/layout.tsx): App Router layout · Shared document shell, providers, fonts, and global styles boundary. · `app/layout.tsx`
- [Landing page](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/page.tsx): composition root · Orders content sections and persistent visual controls. · `app/page.tsx`
- [Navigation](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/navigation.tsx): page interaction · In-page navigation targeting landing sections. · `components/navigation.tsx`
- [Section menu](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/section-menu.tsx): page interaction · `components/section-menu.tsx`
- [Preloader](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/preloader.tsx): lifecycle UI · `components/preloader.tsx`
- [Theme provider](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/theme-provider.tsx): provider · Shared theme boundary for the page. · `components/theme-provider.tsx`

### Landing Content

- [Hero section](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/hero-section.tsx): landing section · `components/hero-section.tsx`
- [About section](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/about-section.tsx): landing section · `components/about-section.tsx`
- [Events section](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/events-section.tsx): landing section · `components/events-section.tsx`
- [Contact section](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/contact-section.tsx): landing section · `components/contact-section.tsx`

### Visual Systems

- [Gallery section](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/gallery-section.tsx): landing section · `components/gallery-section.tsx`
- [Infinite gallery](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/infinite-gallery-section.tsx): interactive gallery · `components/infinite-gallery-section.tsx`
- [Gallery canvas](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/lib/gallery-canvas.ts): rendering abstraction · Canvas-oriented rendering for gallery effects. · `lib/gallery-canvas.ts`
- [Gallery media](https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/infinite): static assets · Locally hosted gallery collections. · `public/gallery/infinite`
- [Event media](https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/events): static assets · `public/gallery/events`
- [Landing media](https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/landing): static assets · `public/gallery/landing`
- [Headshot media](https://github.com/ayush1974-rgb/ai_tronics_website/tree/main/public/gallery/heads): static assets · `public/gallery/heads`

### UI & Styling

- [App global styles](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/app/globals.css): stylesheet · `app/globals.css`
- [UI primitives](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/ui/button.tsx): local component library · Shared controls used beneath page-specific components. · `components/ui/button.tsx`
- [Dialog primitive](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/components/ui/dialog.tsx): UI primitive · `components/ui/dialog.tsx`
- [UI utilities](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/lib/utils.ts): utility composition · `lib/utils.ts`
- [Shared global styles](https://github.com/ayush1974-rgb/ai_tronics_website/blob/main/styles/globals.css): stylesheet · `styles/globals.css`

## Connections

- Node / Next.js build → Root layout: runs
- Root layout → Landing page: hosts
- Root layout → Theme provider: provides
- Root layout → App global styles: loads
- Landing page → Hero section: composes
- Landing page → About section: composes
- Landing page → Events section: composes
- Landing page → Contact section: composes
- Landing page → Gallery section: composes
- Landing page → Infinite gallery: composes
- Landing page → Navigation: includes
- Landing page → Section menu: includes
- Landing page → Preloader: includes
- Navigation → Hero section: targets
- Section menu → Events section: targets sections
- Gallery section → Event media: uses
- Gallery section → Headshot media: uses
- Hero section → Landing media: uses
- Infinite gallery → Gallery canvas: renders through
- Infinite gallery → Gallery media: uses
- UI primitives → UI utilities: uses
- Dialog primitive → UI utilities: uses
- Landing page → UI primitives: uses shared controls
- Landing page → Shared global styles: shares styling
