# hexjasur/jasurbek architecture

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

## Overview

Jasurbek Haydarov is a static personal portfolio and technical blog. A visitor browses profile, project, and editorial pages; blog content is validated and rendered into pages, with tag navigation and RSS. Separate branches provide browser-local tools and small games. Build-time social previews and SEO support the published pages. The README documents these capabilities; sampled source confirms selected data and generation links, but many page implementations were not excerpted, so their internal calls are not inferred.

Main entry points: [`src/content/blog`](https://github.com/hexjasur/jasurbek/tree/master/src/content/blog) (Markdown Posts), [`src/pages/blog`](https://github.com/hexjasur/jasurbek/tree/master/src/pages/blog) (Blog and Tags), [`src/pages/og/[...slug].png.ts`](https://github.com/hexjasur/jasurbek/blob/master/src/pages/og/%5B...slug%5D.png.ts) (Social Preview Routes), [`src/config.ts`](https://github.com/hexjasur/jasurbek/blob/master/src/config.ts) (Site Configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Editorial Content"]
  node_blog_content["Markdown Posts"]
  node_content_schema["Collection Schema<br/>[content.config.ts]"]
end

subgraph group_pages["Site Pages"]
  node_blog_pages["Blog and Tags"]
  node_rss_feed["RSS Feed<br/>[rss.xml.ts]"]
  node_profile["Profile and Contact<br/>[index.astro]"]
  node_projects["Project Pages"]
end

subgraph group_interactive["Interactive Features"]
  node_tools["Browser Tools"]
  node_tool_catalog["Tool Catalog<br/>[tools.ts]"]
  node_playground["Games and Experiments"]
  node_play_catalog["Playground Catalog<br/>[playground.ts]"]
end

subgraph group_shared["Shared Presentation"]
  node_search["In-Browser Search"]
  node_site_config["Site Configuration<br/>[config.ts]"]
  node_og_route["Social Preview Routes<br/>[&#91;...slug&#93;.png.ts]"]
  node_og_renderer["Preview Renderer<br/>[og.ts]"]
  node_seo["SEO Metadata<br/>[schema.ts]"]
end

node_visitor(("Visitor"))
node_contact_service{{"Formspree Contact"}}
node_comments_service{{"Giscus Comments"}}

node_blog_content -->|"validated by"| node_content_schema
node_blog_content -->|"rendered into"| node_blog_pages
node_blog_content -->|"published in"| node_rss_feed
node_visitor -.->|"browses"| node_blog_pages
node_visitor -.->|"visits"| node_profile
node_visitor -.->|"browses"| node_projects
node_visitor -->|"uses locally"| node_tools
node_visitor -.->|"plays"| node_playground
node_profile -.->|"submits to"| node_contact_service
node_blog_pages -.->|"shows comments"| node_comments_service
node_visitor -->|"searches"| node_search
node_tool_catalog -->|"provides entries"| node_og_route
node_play_catalog -->|"provides entries"| node_og_route
node_og_route -->|"renders previews"| node_og_renderer
node_site_config -->|"supplies site identity"| node_og_renderer
node_site_config -->|"supplies metadata"| node_seo

click node_blog_content "https://github.com/hexjasur/jasurbek/tree/master/src/content/blog"
click node_content_schema "https://github.com/hexjasur/jasurbek/blob/master/src/content.config.ts"
click node_blog_pages "https://github.com/hexjasur/jasurbek/tree/master/src/pages/blog"
click node_rss_feed "https://github.com/hexjasur/jasurbek/blob/master/src/pages/rss.xml.ts"
click node_profile "https://github.com/hexjasur/jasurbek/blob/master/src/pages/index.astro"
click node_projects "https://github.com/hexjasur/jasurbek/tree/master/src/pages/projects"
click node_tools "https://github.com/hexjasur/jasurbek/tree/master/src/pages/tools"
click node_tool_catalog "https://github.com/hexjasur/jasurbek/blob/master/src/data/tools.ts"
click node_playground "https://github.com/hexjasur/jasurbek/tree/master/src/pages/playground"
click node_play_catalog "https://github.com/hexjasur/jasurbek/blob/master/src/data/playground.ts"
click node_search "https://github.com/hexjasur/jasurbek/blob/master/src/components/SearchPalette.astro"
click node_site_config "https://github.com/hexjasur/jasurbek/blob/master/src/config.ts"
click node_og_route "https://github.com/hexjasur/jasurbek/blob/master/src/pages/og/%5B...slug%5D.png.ts"
click node_og_renderer "https://github.com/hexjasur/jasurbek/blob/master/src/lib/og.ts"
click node_seo "https://github.com/hexjasur/jasurbek/blob/master/src/lib/schema.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_blog_content,node_content_schema toneBlue
class node_blog_pages,node_rss_feed,node_profile,node_projects toneAmber
class node_tools,node_tool_catalog,node_playground,node_play_catalog toneMint
class node_search,node_site_config,node_og_route,node_og_renderer,node_seo toneRose
class node_visitor,node_contact_service,node_comments_service toneIndigo
```

## Components

### Editorial Content

- [Markdown Posts](https://github.com/hexjasur/jasurbek/tree/master/src/content/blog): `src/content/blog`
- [Collection Schema](https://github.com/hexjasur/jasurbek/blob/master/src/content.config.ts): `src/content.config.ts`

### Site Pages

- [Blog and Tags](https://github.com/hexjasur/jasurbek/tree/master/src/pages/blog): `src/pages/blog`
- [RSS Feed](https://github.com/hexjasur/jasurbek/blob/master/src/pages/rss.xml.ts): `src/pages/rss.xml.ts`
- [Profile and Contact](https://github.com/hexjasur/jasurbek/blob/master/src/pages/index.astro): `src/pages/index.astro`
- [Project Pages](https://github.com/hexjasur/jasurbek/tree/master/src/pages/projects): `src/pages/projects`

### Interactive Features

- [Browser Tools](https://github.com/hexjasur/jasurbek/tree/master/src/pages/tools): `src/pages/tools`
- [Tool Catalog](https://github.com/hexjasur/jasurbek/blob/master/src/data/tools.ts): `src/data/tools.ts`
- [Games and Experiments](https://github.com/hexjasur/jasurbek/tree/master/src/pages/playground): `src/pages/playground`
- [Playground Catalog](https://github.com/hexjasur/jasurbek/blob/master/src/data/playground.ts): `src/data/playground.ts`

### Shared Presentation

- [In-Browser Search](https://github.com/hexjasur/jasurbek/blob/master/src/components/SearchPalette.astro): `src/components/SearchPalette.astro`
- [Site Configuration](https://github.com/hexjasur/jasurbek/blob/master/src/config.ts): `src/config.ts`
- [Social Preview Routes](https://github.com/hexjasur/jasurbek/blob/master/src/pages/og/%5B...slug%5D.png.ts): `src/pages/og/[...slug].png.ts`
- [Preview Renderer](https://github.com/hexjasur/jasurbek/blob/master/src/lib/og.ts): `src/lib/og.ts`
- [SEO Metadata](https://github.com/hexjasur/jasurbek/blob/master/src/lib/schema.ts): `src/lib/schema.ts`

### Other components

- **Visitor**
- **Formspree Contact**
- **Giscus Comments**

## Connections

- Markdown Posts → Collection Schema: validated by (evidence: `README.md`)
- Markdown Posts → Blog and Tags: rendered into (evidence: `README.md`)
- Markdown Posts → RSS Feed: published in (evidence: `src/pages/rss.xml.ts`)
- Visitor → Blog and Tags: browses
- Visitor → Profile and Contact: visits
- Visitor → Project Pages: browses
- Visitor → Browser Tools: uses locally (evidence: `README.md`)
- Visitor → Games and Experiments: plays
- Profile and Contact → Formspree Contact: submits to (evidence: `README.md`)
- Blog and Tags → Giscus Comments: shows comments (evidence: `README.md`)
- Visitor → In-Browser Search: searches (evidence: `README.md`)
- Tool Catalog → Social Preview Routes: provides entries (evidence: `src/pages/og/[...slug].png.ts`)
- Playground Catalog → Social Preview Routes: provides entries (evidence: `src/pages/og/[...slug].png.ts`)
- Social Preview Routes → Preview Renderer: renders previews (evidence: `src/pages/og/[...slug].png.ts`)
- Site Configuration → Preview Renderer: supplies site identity (evidence: `src/lib/og.ts`)
- Site Configuration → SEO Metadata: supplies metadata (evidence: `src/lib/schema.ts`)
