# valentynkit/awesome-jev-typesafe architecture

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

- Interactive diagram: https://gitdiagram.com/valentynkit/awesome-jev-typesafe
- Repository: https://github.com/valentynkit/awesome-jev-typesafe

## Overview

Awesome Jev is a curated, multilingual directory of projects and resources built around TypeSafe Jev. Visitors browse categories, search and rerank projects, inspect ecosystem insights, and consume machine-readable exports; contributors add entries through the repository list. The graph separates curation data, shared data/search logic, browse experiences, and exports/integrations. Evidence includes the README, tree, and sampled site sources; unsampled page wiring is represented only where supported by documented capabilities.

Main entry points: [`site/src/lib/data.ts`](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/data.ts) (Directory model), [`site/src/lib/trending.ts`](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/trending.ts) (Trend rankings), [`site/src/pages/[...lang]/index.astro`](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/index.astro) (Directory search), [`site/src/pages/api/rerank.ts`](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/api/rerank.ts) (Rerank endpoint)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Directory data"]
  node_readme["Curated entries<br/>[readme.md]"]
  node_projects["Project index<br/>[projects.json]"]
  node_githubdata["GitHub metadata<br/>[github.json]"]
  node_jevdata["Jev tags<br/>[jev.json]"]
  node_history["Entry history<br/>[history.json]"]
  node_stars["Star snapshots"]
end

subgraph group_logic["Site logic"]
  node_datalib["Directory model<br/>[data.ts]"]
  node_search["Search ranking<br/>[search.ts]"]
  node_rerankcore["Jev reranking<br/>[rerank-core.mjs]"]
  node_trending["Trend rankings<br/>[trending.ts]"]
end

subgraph group_browse["Browse experiences"]
  node_home["Directory search<br/>[index.astro]"]
  node_projectsview["Project browsing<br/>[projects.astro]"]
  node_category["Category pages<br/>[&#91;slug&#93;.astro]"]
  node_project["Project details<br/>[&#91;id&#93;.astro]"]
  node_insights["Ecosystem insights<br/>[insights.astro]"]
  node_radar["Ecosystem radar<br/>[radar.astro]"]
  node_trendingpage["Trending board<br/>[trending.astro]"]
  node_submit["Submission guide<br/>[submit.astro]"]
end

subgraph group_exports["Feeds and integrations"]
  node_rerankapi["Rerank endpoint<br/>[rerank.ts]"]
  node_searchindex["Search index"]
  node_projectjson["Project export<br/>[projects.json.ts]"]
  node_llms["LLM text exports<br/>[llms.txt.ts]"]
  node_llmsfull["Full list export<br/>[llms-full.txt.ts]"]
  node_feed["Recent additions feed<br/>[feed.xml.ts]"]
end

node_visitor(("Visitor"))
node_contributor(("Contributor"))
node_typesafe{{"TypeSafe Jev API"}}
node_github{{"GitHub API"}}

node_contributor -->|"adds entries"| node_readme
node_readme -->|"curated into"| node_projects
node_projects -->|"loads entries"| node_datalib
node_githubdata -->|"enriches entries"| node_datalib
node_jevdata -->|"adds tags"| node_datalib
node_history -->|"adds dates"| node_datalib
node_visitor -->|"searches"| node_home
node_visitor -->|"browses"| node_projectsview
node_visitor -->|"opens category"| node_category
node_visitor -->|"opens project"| node_project
node_visitor -->|"explores"| node_insights
node_visitor -->|"explores"| node_radar
node_visitor -->|"checks trends"| node_trendingpage
node_visitor -->|"finds guidance"| node_submit
node_home -->|"reads entries"| node_datalib
node_projectsview -->|"reads entries"| node_datalib
node_category -->|"reads category"| node_datalib
node_project -->|"reads details"| node_datalib
node_insights -->|"reads metrics"| node_datalib
node_radar -->|"reads tags"| node_datalib
node_trendingpage -->|"requests rankings"| node_trending
node_trending -->|"reads projects"| node_projects
node_trending -->|"reads metadata"| node_githubdata
node_trending -->|"reads history"| node_history
node_trending -->|"reads snapshots"| node_stars
node_home -->|"filters results"| node_search
node_search -->|"loads index"| node_searchindex
node_searchindex -->|"builds documents"| node_datalib
node_home -.->|"requests reranking"| node_rerankapi
node_rerankapi -->|"validates and ranks"| node_rerankcore
node_rerankapi -.->|"scores candidates"| node_typesafe
node_rerankapi -->|"reads candidates"| node_projects
node_visitor -->|"fetches export"| node_projectjson
node_visitor -->|"fetches guide"| node_llms
node_visitor -->|"fetches full list"| node_llmsfull
node_visitor -->|"subscribes"| node_feed
node_projectjson -->|"serializes projects"| node_datalib
node_llms -->|"renders directory"| node_datalib
node_llmsfull -->|"renders entries"| node_datalib
node_feed -->|"reads additions"| node_datalib
node_datalib -.->|"fetches repo stars"| node_github

click node_readme "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/readme.md"
click node_projects "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/projects.json"
click node_githubdata "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/github.json"
click node_jevdata "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/jev.json"
click node_history "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/history.json"
click node_stars "https://github.com/valentynkit/awesome-jev-typesafe/tree/main/data/stars"
click node_datalib "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/data.ts"
click node_search "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/scripts/search.ts"
click node_rerankcore "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/rerank-core.mjs"
click node_trending "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/trending.ts"
click node_home "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/index.astro"
click node_projectsview "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/projects.astro"
click node_category "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/c/%5Bslug%5D.astro"
click node_project "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/p/%5Bid%5D.astro"
click node_insights "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/insights.astro"
click node_radar "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/radar.astro"
click node_trendingpage "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/trending.astro"
click node_submit "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/submit.astro"
click node_rerankapi "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/api/rerank.ts"
click node_searchindex "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/search-index.%5Blang%5D.json.ts"
click node_projectjson "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/projects.json.ts"
click node_llms "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/llms.txt.ts"
click node_llmsfull "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/llms-full.txt.ts"
click node_feed "https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/feed.xml.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_readme,node_projects,node_githubdata,node_jevdata,node_history,node_stars toneBlue
class node_datalib,node_search,node_rerankcore,node_trending toneAmber
class node_home,node_projectsview,node_category,node_project,node_insights,node_radar,node_trendingpage,node_submit,node_typesafe,node_github toneMint
class node_rerankapi,node_searchindex,node_projectjson,node_llms,node_llmsfull,node_feed toneRose
class node_visitor,node_contributor toneIndigo
```

## Components

### Directory data

- [Curated entries](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/readme.md): `readme.md`
- [Project index](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/projects.json): `data/projects.json`
- [GitHub metadata](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/github.json): `data/github.json`
- [Jev tags](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/jev.json): `data/jev.json`
- [Entry history](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/data/history.json): `data/history.json`
- [Star snapshots](https://github.com/valentynkit/awesome-jev-typesafe/tree/main/data/stars): `data/stars`

### Site logic

- [Directory model](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/data.ts): `site/src/lib/data.ts`
- [Search ranking](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/scripts/search.ts): `site/src/scripts/search.ts`
- [Jev reranking](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/rerank-core.mjs): `site/src/lib/rerank-core.mjs`
- [Trend rankings](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/lib/trending.ts): `site/src/lib/trending.ts`

### Browse experiences

- [Directory search](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/index.astro): `site/src/pages/[...lang]/index.astro`
- [Project browsing](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/projects.astro): `site/src/pages/[...lang]/projects.astro`
- [Category pages](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/c/%5Bslug%5D.astro): `site/src/pages/[...lang]/c/[slug].astro`
- [Project details](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/p/%5Bid%5D.astro): `site/src/pages/[...lang]/p/[id].astro`
- [Ecosystem insights](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/insights.astro): `site/src/pages/[...lang]/insights.astro`
- [Ecosystem radar](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/radar.astro): `site/src/pages/[...lang]/radar.astro`
- [Trending board](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/trending.astro): `site/src/pages/[...lang]/trending.astro`
- [Submission guide](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/%5B...lang%5D/submit.astro): `site/src/pages/[...lang]/submit.astro`

### Feeds and integrations

- [Rerank endpoint](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/api/rerank.ts): `site/src/pages/api/rerank.ts`
- [Search index](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/search-index.%5Blang%5D.json.ts): `site/src/pages/search-index.[lang].json.ts`
- [Project export](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/projects.json.ts): `site/src/pages/projects.json.ts`
- [LLM text exports](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/llms.txt.ts): `site/src/pages/llms.txt.ts`
- [Full list export](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/llms-full.txt.ts): `site/src/pages/llms-full.txt.ts`
- [Recent additions feed](https://github.com/valentynkit/awesome-jev-typesafe/blob/main/site/src/pages/feed.xml.ts): `site/src/pages/feed.xml.ts`

### Other components

- **Visitor**
- **Contributor**
- **TypeSafe Jev API**
- **GitHub API**

## Connections

- Contributor → Curated entries: adds entries
- Curated entries → Project index: curated into
- Project index → Directory model: loads entries
- GitHub metadata → Directory model: enriches entries
- Jev tags → Directory model: adds tags
- Entry history → Directory model: adds dates
- Visitor → Directory search: searches
- Visitor → Project browsing: browses
- Visitor → Category pages: opens category
- Visitor → Project details: opens project
- Visitor → Ecosystem insights: explores
- Visitor → Ecosystem radar: explores
- Visitor → Trending board: checks trends
- Visitor → Submission guide: finds guidance
- Directory search → Directory model: reads entries
- Project browsing → Directory model: reads entries
- Category pages → Directory model: reads category
- Project details → Directory model: reads details
- Ecosystem insights → Directory model: reads metrics
- Ecosystem radar → Directory model: reads tags
- Trending board → Trend rankings: requests rankings
- Trend rankings → Project index: reads projects
- Trend rankings → GitHub metadata: reads metadata
- Trend rankings → Entry history: reads history
- Trend rankings → Star snapshots: reads snapshots
- Directory search → Search ranking: filters results
- Search ranking → Search index: loads index
- Search index → Directory model: builds documents
- Directory search → Rerank endpoint: requests reranking
- Rerank endpoint → Jev reranking: validates and ranks
- Rerank endpoint → TypeSafe Jev API: scores candidates
- Rerank endpoint → Project index: reads candidates
- Visitor → Project export: fetches export
- Visitor → LLM text exports: fetches guide
- Visitor → Full list export: fetches full list
- Visitor → Recent additions feed: subscribes
- Project export → Directory model: serializes projects
- LLM text exports → Directory model: renders directory
- Full list export → Directory model: renders entries
- Recent additions feed → Directory model: reads additions
- Directory model → GitHub API: fetches repo stars
