# kevin-pierik/kevinpierik-dev architecture

> Architecture diagram of the GitHub repository kevin-pierik/kevinpierik-dev, 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/kevin-pierik/kevinpierik-dev
- Repository: https://github.com/kevin-pierik/kevinpierik-dev

## Overview

kevinpierik.dev is a static, one-page professional profile and CV. The main user flow is visiting the homepage to view profile content and contact details; the README says that public content is hardcoded and does not fetch from Sanity. Separate prerendered routes publish crawler-facing metadata, while `/studio` hosts an optional Sanity Studio. The homepage and shared layout source were not sampled, so their internal rendering details and exact wiring are not asserted.

Main entry points: [`src/features/sanity/studio.tsx`](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/features/sanity/studio.tsx) (Sanity bridge), [`sanity.config.ts`](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/sanity.config.ts) (Sanity configuration), [`src/pages/index.astro`](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/index.astro) (Profile and CV), [`src/pages/studio/[...tool].astro`](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/studio/%5B...tool%5D.astro) (Studio route)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_profile["Public profile"]
  node_homepage["Profile and CV<br/>[index.astro]"]
  node_layout["Web layout<br/>[web.astro]"]
  node_notfound["Not found<br/>[404.astro]"]
end

subgraph group_discovery["Search discovery"]
  node_structured["Structured data<br/>[structured-data.ts]"]
  node_robots["Robots endpoint<br/>[robots.txt.ts]"]
  node_sitemap["Sitemap endpoint<br/>[sitemap.xml.ts]"]
  node_llms["LLMs endpoint<br/>[llms.txt.ts]"]
end

subgraph group_admin["Content administration"]
  node_studio_route["Studio route<br/>[&#91;...tool&#93;.astro]"]
  node_studio_index["Studio index<br/>[index.astro]"]
  node_studio_bridge["Sanity bridge<br/>[studio.tsx]"]
  node_sanity_config["Sanity configuration<br/>[sanity.config.ts]"]
  node_schemas["Content schemas<br/>[index.ts]"]
end

node_visitor(("Site visitor"))
node_sanity(("Sanity Studio"))

node_visitor -->|"visits"| node_homepage
node_visitor -.->|"opens"| node_studio_route
node_studio_bridge -->|"loads config"| node_sanity_config
node_sanity_config -->|"uses schemas"| node_schemas
node_studio_bridge -.->|"renders Studio"| node_sanity

click node_homepage "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/index.astro"
click node_layout "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/layouts/web.astro"
click node_notfound "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/404.astro"
click node_structured "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/features/site/seo/structured-data.ts"
click node_robots "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/robots.txt.ts"
click node_sitemap "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/sitemap.xml.ts"
click node_llms "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/llms.txt.ts"
click node_studio_route "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/studio/%5B...tool%5D.astro"
click node_studio_index "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/studio/index.astro"
click node_studio_bridge "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/features/sanity/studio.tsx"
click node_sanity_config "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/sanity.config.ts"
click node_schemas "https://github.com/kevin-pierik/kevinpierik-dev/blob/main/sanity/schemas/index.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_homepage,node_layout,node_notfound toneBlue
class node_structured,node_robots,node_sitemap,node_llms toneAmber
class node_studio_route,node_studio_index,node_studio_bridge,node_sanity_config,node_schemas toneMint
class node_visitor,node_sanity toneIndigo
```

## Components

### Public profile

- [Profile and CV](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/index.astro): `src/pages/index.astro`
- [Web layout](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/layouts/web.astro): `src/layouts/web.astro`
- [Not found](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/404.astro): `src/pages/404.astro`

### Search discovery

- [Structured data](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/features/site/seo/structured-data.ts): `src/features/site/seo/structured-data.ts`
- [Robots endpoint](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/robots.txt.ts): `src/pages/robots.txt.ts`
- [Sitemap endpoint](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/sitemap.xml.ts): `src/pages/sitemap.xml.ts`
- [LLMs endpoint](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/llms.txt.ts): `src/pages/llms.txt.ts`

### Content administration

- [Studio route](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/studio/%5B...tool%5D.astro): `src/pages/studio/[...tool].astro`
- [Studio index](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/pages/studio/index.astro): `src/pages/studio/index.astro`
- [Sanity bridge](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/src/features/sanity/studio.tsx): `src/features/sanity/studio.tsx`
- [Sanity configuration](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/sanity.config.ts): `sanity.config.ts`
- [Content schemas](https://github.com/kevin-pierik/kevinpierik-dev/blob/main/sanity/schemas/index.ts): `sanity/schemas/index.ts`

### Other components

- **Site visitor**
- **Sanity Studio**

## Connections

- Site visitor → Profile and CV: visits
- Site visitor → Studio route: opens
- Sanity bridge → Sanity configuration: loads config
- Sanity configuration → Content schemas: uses schemas
- Sanity bridge → Sanity Studio: renders Studio
