# hellstaber/credo-web architecture

> Architecture diagram of the GitHub repository hellstaber/credo-web, 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/hellstaber/credo-web
- Repository: https://github.com/hellstaber/credo-web

## Overview

Credo Web is a Georgian-language bank marketing site. Visitors enter through a page route, which assembles banking and editorial sections into a page; the loan routes highlight loan products and a calculator, while other routes present customer segments and the premium Rcheuli offering. Sections also cover mobile banking, rates, locations and news. The README says rates, branch maps and news use fixed design data rather than APIs. Connections below rely on the README, sampled route imports and SOURCE INDEX references; unsampled integrations are not inferred.

Main entry points: [`app/page.tsx`](https://github.com/hellstaber/credo-web/blob/main/app/page.tsx) (Home page), [`app/loans/page.tsx`](https://github.com/hellstaber/credo-web/blob/main/app/loans/page.tsx) (Loans page), [`app/rcheuli/page.tsx`](https://github.com/hellstaber/credo-web/blob/main/app/rcheuli/page.tsx) (Rcheuli page), [`components/Calculator/Calculator.tsx`](https://github.com/hellstaber/credo-web/blob/main/components/Calculator/Calculator.tsx) (Loan and deposit calculator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routes["Page routes"]
  node_home["Home page<br/>[page.tsx]"]
  node_loans["Loans page<br/>[page.tsx]"]
  node_digital["Digital loan page<br/>[page.tsx]"]
  node_rcheuli["Rcheuli page<br/>[page.tsx]"]
  node_emigrants["Emigrants page<br/>[page.tsx]"]
  node_expats["Expats page<br/>[page.tsx]"]
end

subgraph group_site["Shared site"]
  node_header["Navigation header<br/>[Header.tsx]"]
  node_footer["Site footer<br/>[Footer.tsx]"]
  node_button["Button control<br/>[Button.tsx]"]
end

subgraph group_banking["Banking content"]
  node_hero["Home hero<br/>[Hero.tsx]"]
  node_segments["Customer segments<br/>[Segments.tsx]"]
  node_products["Bank products<br/>[Products.tsx]"]
  node_calculator["Loan and deposit calculator<br/>[Calculator.tsx]"]
  node_mobile["Mobile banking<br/>[MobileBank.tsx]"]
  node_rates["Exchange rates<br/>[Rates.tsx]"]
  node_locations["Branches and ATMs<br/>[Locations.tsx]"]
  node_loan_sections["Loan offerings and FAQ"]
  node_rcheuli_content["Rcheuli offer<br/>[Rcheuli.tsx]"]
  node_emigrants_content["Emigrant services<br/>[Emigrants.tsx]"]
  node_expats_content["Expat services<br/>[Expats.tsx]"]
end

subgraph group_editorial["Editorial motion"]
  node_news["News carousel<br/>[News.tsx]"]
  node_news_data["News content<br/>[news.mjs]"]
  node_carousel["Carousel engine"]
  node_globe["Transfer globe"]
  node_particles["Particle animation"]
end

node_visitor(("Site visitor"))

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_loans
node_visitor -->|"opens"| node_digital
node_visitor -->|"opens"| node_rcheuli
node_home -->|"renders"| node_header
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_segments
node_home -->|"renders"| node_products
node_home -->|"renders"| node_calculator
node_home -->|"renders"| node_mobile
node_home -->|"renders"| node_rates
node_home -->|"renders"| node_locations
node_home -->|"renders"| node_news
node_home -->|"renders"| node_footer
node_loans -->|"renders"| node_header
node_loans -->|"renders"| node_loan_sections
node_loans -->|"renders"| node_calculator
node_loans -->|"renders"| node_footer
node_digital -->|"renders"| node_loan_sections
node_digital -->|"renders"| node_calculator
node_rcheuli -->|"renders"| node_rcheuli_content
node_rcheuli -->|"renders"| node_calculator
node_rcheuli -->|"renders"| node_rates
node_rcheuli -->|"renders"| node_locations
node_emigrants -->|"renders"| node_emigrants_content
node_expats -->|"renders"| node_expats_content
node_products -->|"uses"| node_globe
node_products -->|"uses"| node_particles
node_news -->|"reads"| node_news_data
node_news -->|"uses"| node_carousel
node_carousel -->|"uses layout"| node_news_data
node_mobile -.->|"shares downloads"| node_footer

click node_home "https://github.com/hellstaber/credo-web/blob/main/app/page.tsx"
click node_loans "https://github.com/hellstaber/credo-web/blob/main/app/loans/page.tsx"
click node_digital "https://github.com/hellstaber/credo-web/blob/main/app/loans/digital-loan/page.tsx"
click node_rcheuli "https://github.com/hellstaber/credo-web/blob/main/app/rcheuli/page.tsx"
click node_emigrants "https://github.com/hellstaber/credo-web/blob/main/app/emigrants/page.tsx"
click node_expats "https://github.com/hellstaber/credo-web/blob/main/app/expats/page.tsx"
click node_header "https://github.com/hellstaber/credo-web/blob/main/components/Header/Header.tsx"
click node_footer "https://github.com/hellstaber/credo-web/blob/main/components/Footer/Footer.tsx"
click node_button "https://github.com/hellstaber/credo-web/blob/main/components/Button/Button.tsx"
click node_hero "https://github.com/hellstaber/credo-web/blob/main/components/Hero/Hero.tsx"
click node_segments "https://github.com/hellstaber/credo-web/blob/main/components/Segments/Segments.tsx"
click node_products "https://github.com/hellstaber/credo-web/blob/main/components/Products/Products.tsx"
click node_calculator "https://github.com/hellstaber/credo-web/blob/main/components/Calculator/Calculator.tsx"
click node_mobile "https://github.com/hellstaber/credo-web/blob/main/components/MobileBank/MobileBank.tsx"
click node_rates "https://github.com/hellstaber/credo-web/blob/main/components/Rates/Rates.tsx"
click node_locations "https://github.com/hellstaber/credo-web/blob/main/components/Locations/Locations.tsx"
click node_loan_sections "https://github.com/hellstaber/credo-web/tree/main/components/Loans"
click node_rcheuli_content "https://github.com/hellstaber/credo-web/blob/main/components/Rcheuli/Rcheuli.tsx"
click node_emigrants_content "https://github.com/hellstaber/credo-web/blob/main/components/Emigrants/Emigrants.tsx"
click node_expats_content "https://github.com/hellstaber/credo-web/blob/main/components/Expats/Expats.tsx"
click node_news "https://github.com/hellstaber/credo-web/blob/main/components/News/News.tsx"
click node_news_data "https://github.com/hellstaber/credo-web/blob/main/data/news.mjs"
click node_carousel "https://github.com/hellstaber/credo-web/blob/main/lib/create-news-carousel.mjs"
click node_globe "https://github.com/hellstaber/credo-web/blob/main/lib/create-transfer-globe.mjs"
click node_particles "https://github.com/hellstaber/credo-web/blob/main/lib/dayavi-particles.mjs"

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_loans,node_digital,node_rcheuli,node_emigrants,node_expats toneBlue
class node_header,node_footer,node_button toneAmber
class node_hero,node_segments,node_products,node_calculator,node_mobile,node_rates,node_locations,node_loan_sections,node_rcheuli_content,node_emigrants_content,node_expats_content toneMint
class node_news,node_news_data,node_carousel,node_globe,node_particles toneRose
class node_visitor toneIndigo
```

## Components

### Page routes

- [Home page](https://github.com/hellstaber/credo-web/blob/main/app/page.tsx): `app/page.tsx`
- [Loans page](https://github.com/hellstaber/credo-web/blob/main/app/loans/page.tsx): `app/loans/page.tsx`
- [Digital loan page](https://github.com/hellstaber/credo-web/blob/main/app/loans/digital-loan/page.tsx): `app/loans/digital-loan/page.tsx`
- [Rcheuli page](https://github.com/hellstaber/credo-web/blob/main/app/rcheuli/page.tsx): `app/rcheuli/page.tsx`
- [Emigrants page](https://github.com/hellstaber/credo-web/blob/main/app/emigrants/page.tsx): `app/emigrants/page.tsx`
- [Expats page](https://github.com/hellstaber/credo-web/blob/main/app/expats/page.tsx): `app/expats/page.tsx`

### Shared site

- [Navigation header](https://github.com/hellstaber/credo-web/blob/main/components/Header/Header.tsx): `components/Header/Header.tsx`
- [Site footer](https://github.com/hellstaber/credo-web/blob/main/components/Footer/Footer.tsx): `components/Footer/Footer.tsx`
- [Button control](https://github.com/hellstaber/credo-web/blob/main/components/Button/Button.tsx): `components/Button/Button.tsx`

### Banking content

- [Home hero](https://github.com/hellstaber/credo-web/blob/main/components/Hero/Hero.tsx): `components/Hero/Hero.tsx`
- [Customer segments](https://github.com/hellstaber/credo-web/blob/main/components/Segments/Segments.tsx): `components/Segments/Segments.tsx`
- [Bank products](https://github.com/hellstaber/credo-web/blob/main/components/Products/Products.tsx): `components/Products/Products.tsx`
- [Loan and deposit calculator](https://github.com/hellstaber/credo-web/blob/main/components/Calculator/Calculator.tsx): `components/Calculator/Calculator.tsx`
- [Mobile banking](https://github.com/hellstaber/credo-web/blob/main/components/MobileBank/MobileBank.tsx): `components/MobileBank/MobileBank.tsx`
- [Exchange rates](https://github.com/hellstaber/credo-web/blob/main/components/Rates/Rates.tsx): `components/Rates/Rates.tsx`
- [Branches and ATMs](https://github.com/hellstaber/credo-web/blob/main/components/Locations/Locations.tsx): `components/Locations/Locations.tsx`
- [Loan offerings and FAQ](https://github.com/hellstaber/credo-web/tree/main/components/Loans): `components/Loans`
- [Rcheuli offer](https://github.com/hellstaber/credo-web/blob/main/components/Rcheuli/Rcheuli.tsx): `components/Rcheuli/Rcheuli.tsx`
- [Emigrant services](https://github.com/hellstaber/credo-web/blob/main/components/Emigrants/Emigrants.tsx): `components/Emigrants/Emigrants.tsx`
- [Expat services](https://github.com/hellstaber/credo-web/blob/main/components/Expats/Expats.tsx): `components/Expats/Expats.tsx`

### Editorial motion

- [News carousel](https://github.com/hellstaber/credo-web/blob/main/components/News/News.tsx): `components/News/News.tsx`
- [News content](https://github.com/hellstaber/credo-web/blob/main/data/news.mjs): `data/news.mjs`
- [Carousel engine](https://github.com/hellstaber/credo-web/blob/main/lib/create-news-carousel.mjs): `lib/create-news-carousel.mjs`
- [Transfer globe](https://github.com/hellstaber/credo-web/blob/main/lib/create-transfer-globe.mjs): `lib/create-transfer-globe.mjs`
- [Particle animation](https://github.com/hellstaber/credo-web/blob/main/lib/dayavi-particles.mjs): `lib/dayavi-particles.mjs`

### Other components

- **Site visitor**

## Connections

- Site visitor → Home page: opens (evidence: `README.md`)
- Site visitor → Loans page: opens (evidence: `README.md`)
- Site visitor → Digital loan page: opens (evidence: `README.md`)
- Site visitor → Rcheuli page: opens (evidence: `README.md`)
- Home page → Navigation header: renders (evidence: `app/page.tsx`)
- Home page → Home hero: renders (evidence: `app/page.tsx`)
- Home page → Customer segments: renders (evidence: `app/page.tsx`)
- Home page → Bank products: renders (evidence: `app/page.tsx`)
- Home page → Loan and deposit calculator: renders (evidence: `app/page.tsx`)
- Home page → Mobile banking: renders (evidence: `app/page.tsx`)
- Home page → Exchange rates: renders (evidence: `app/page.tsx`)
- Home page → Branches and ATMs: renders (evidence: `app/page.tsx`)
- Home page → News carousel: renders (evidence: `app/page.tsx`)
- Home page → Site footer: renders (evidence: `app/page.tsx`)
- Loans page → Navigation header: renders (evidence: `app/loans/page.tsx`)
- Loans page → Loan offerings and FAQ: renders (evidence: `app/loans/page.tsx`)
- Loans page → Loan and deposit calculator: renders (evidence: `app/loans/page.tsx`)
- Loans page → Site footer: renders (evidence: `app/loans/page.tsx`)
- Digital loan page → Loan offerings and FAQ: renders (evidence: `app/loans/digital-loan/page.tsx`)
- Digital loan page → Loan and deposit calculator: renders (evidence: `app/loans/digital-loan/page.tsx`)
- Rcheuli page → Rcheuli offer: renders (evidence: `app/rcheuli/page.tsx`)
- Rcheuli page → Loan and deposit calculator: renders (evidence: `app/rcheuli/page.tsx`)
- Rcheuli page → Exchange rates: renders (evidence: `app/rcheuli/page.tsx`)
- Rcheuli page → Branches and ATMs: renders (evidence: `app/rcheuli/page.tsx`)
- Emigrants page → Emigrant services: renders (evidence: `app/emigrants/page.tsx`)
- Expats page → Expat services: renders (evidence: `app/expats/page.tsx`)
- Bank products → Transfer globe: uses (evidence: `components/Products/Products.tsx`)
- Bank products → Particle animation: uses (evidence: `components/Products/Products.tsx`)
- News carousel → News content: reads (evidence: `components/News/News.tsx`)
- News carousel → Carousel engine: uses (evidence: `components/News/News.tsx`)
- Carousel engine → News content: uses layout (evidence: `lib/create-news-carousel.mjs`)
- Mobile banking → Site footer: shares downloads
