# zepel8/gpuprices-io architecture

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

- Interactive diagram: https://gitdiagram.com/zepel8/gpuprices-io
- Repository: https://github.com/zepel8/gpuprices-io

## Overview

gpuprices.io is a static Next.js site for GPU and AI infrastructure comparisons. Visitors browse a guide index or open a slug-based article; the site reads MDX content and serves its metadata and rendered article. The content corpus covers GPU/provider comparisons, VRAM requirements, benchmarks, and AI workload costs. The graph reflects the sampled routes and content helper; individual MDX files and some framework-driven wiring were not inspected.

Main entry points: [`lib/content.ts`](https://github.com/zepel8/gpuprices-io/blob/main/lib/content.ts) (Content access), [`app/[slug]/page.tsx`](https://github.com/zepel8/gpuprices-io/blob/main/app/%5Bslug%5D/page.tsx) (Guide page), [`app/layout.tsx`](https://github.com/zepel8/gpuprices-io/blob/main/app/layout.tsx) (Shared layout), [`app/page.tsx`](https://github.com/zepel8/gpuprices-io/blob/main/app/page.tsx) (Guide index)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routes["Page experience"]
  node_home["Guide index<br/>[page.tsx]"]
  node_article["Guide page<br/>[page.tsx]"]
end

subgraph group_content["Guide content"]
  node_content_lib["Content access<br/>[content.ts]"]
  node_guides["MDX guides"]
  node_mdx_components["MDX rendering<br/>[mdx-components.tsx]"]
end

subgraph group_site["Site-wide services"]
  node_layout["Shared layout<br/>[layout.tsx]"]
  node_nav["Site navigation<br/>[nav.tsx]"]
  node_footer["Site footer<br/>[footer.tsx]"]
  node_sitemap["Sitemap<br/>[sitemap.ts]"]
  node_robots["Robots rules<br/>[robots.ts]"]
end

node_visitor(("Site visitor"))
node_plausible["Plausible analytics"]

node_visitor -->|"opens index"| node_home
node_visitor -->|"opens guide"| node_article
node_home -->|"loads guide metadata"| node_content_lib
node_article -->|"gets slugs and metadata"| node_content_lib
node_article -->|"loads MDX"| node_content_lib
node_content_lib -->|"reads files"| node_guides
node_article -->|"renders article"| node_guides
node_layout -->|"renders"| node_nav
node_layout -->|"renders"| node_footer
node_layout -.->|"loads script"| node_plausible
node_sitemap -->|"gets slugs"| node_content_lib
node_robots -->|"advertises"| node_sitemap

click node_home "https://github.com/zepel8/gpuprices-io/blob/main/app/page.tsx"
click node_article "https://github.com/zepel8/gpuprices-io/blob/main/app/%5Bslug%5D/page.tsx"
click node_content_lib "https://github.com/zepel8/gpuprices-io/blob/main/lib/content.ts"
click node_guides "https://github.com/zepel8/gpuprices-io/tree/main/content"
click node_mdx_components "https://github.com/zepel8/gpuprices-io/blob/main/mdx-components.tsx"
click node_layout "https://github.com/zepel8/gpuprices-io/blob/main/app/layout.tsx"
click node_nav "https://github.com/zepel8/gpuprices-io/blob/main/components/nav.tsx"
click node_footer "https://github.com/zepel8/gpuprices-io/blob/main/components/footer.tsx"
click node_sitemap "https://github.com/zepel8/gpuprices-io/blob/main/app/sitemap.ts"
click node_robots "https://github.com/zepel8/gpuprices-io/blob/main/app/robots.ts"

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_article toneBlue
class node_content_lib,node_guides,node_mdx_components toneAmber
class node_layout,node_nav,node_footer,node_sitemap,node_robots toneMint
class node_visitor,node_plausible toneIndigo
```

## Components

### Page experience

- [Guide index](https://github.com/zepel8/gpuprices-io/blob/main/app/page.tsx): `app/page.tsx`
- [Guide page](https://github.com/zepel8/gpuprices-io/blob/main/app/%5Bslug%5D/page.tsx): `app/[slug]/page.tsx`

### Guide content

- [Content access](https://github.com/zepel8/gpuprices-io/blob/main/lib/content.ts): `lib/content.ts`
- [MDX guides](https://github.com/zepel8/gpuprices-io/tree/main/content): `content`
- [MDX rendering](https://github.com/zepel8/gpuprices-io/blob/main/mdx-components.tsx): `mdx-components.tsx`

### Site-wide services

- [Shared layout](https://github.com/zepel8/gpuprices-io/blob/main/app/layout.tsx): `app/layout.tsx`
- [Site navigation](https://github.com/zepel8/gpuprices-io/blob/main/components/nav.tsx): `components/nav.tsx`
- [Site footer](https://github.com/zepel8/gpuprices-io/blob/main/components/footer.tsx): `components/footer.tsx`
- [Sitemap](https://github.com/zepel8/gpuprices-io/blob/main/app/sitemap.ts): `app/sitemap.ts`
- [Robots rules](https://github.com/zepel8/gpuprices-io/blob/main/app/robots.ts): `app/robots.ts`

### Other components

- **Site visitor**
- **Plausible analytics**

## Connections

- Site visitor → Guide index: opens index
- Site visitor → Guide page: opens guide
- Guide index → Content access: loads guide metadata
- Guide page → Content access: gets slugs and metadata
- Guide page → Content access: loads MDX
- Content access → MDX guides: reads files
- Guide page → MDX guides: renders article
- Shared layout → Site navigation: renders
- Shared layout → Site footer: renders
- Shared layout → Plausible analytics: loads script
- Sitemap → Content access: gets slugs
- Robots rules → Sitemap: advertises
