# recodehive/recode-website architecture

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

- Interactive diagram: https://gitdiagram.com/recodehive/recode-website
- Repository: https://github.com/recodehive/recode-website

## Overview

Recode Hive is a Docusaurus-based educational and community website: visitors discover learning resources, engage with community activity, and explore opportunities and offerings. The homepage is a documented entry point, while dedicated pages cover courses, ebooks, projects, broadcasts, podcasts, and showcase content. The graph captures those product stages and a supporting GitHub metrics layer; most page wiring beyond the sampled homepage and community page was not inspected, so unsampled relationships are intentionally left out.

Main entry points: [`src/pages/index.tsx`](https://github.com/recodehive/recode-website/blob/main/src/pages/index.tsx) (Home page), [`src/lib/statsProvider.tsx`](https://github.com/recodehive/recode-website/blob/main/src/lib/statsProvider.tsx) (Stats provider), [`src/theme/Layout.tsx`](https://github.com/recodehive/recode-website/blob/main/src/theme/Layout.tsx) (Site layout), [`src/pages/community/index.tsx`](https://github.com/recodehive/recode-website/blob/main/src/pages/community/index.tsx) (Community page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Site Experience"]
  node_home["Home page<br/>[index.tsx]"]
  node_site_layout["Site layout<br/>[Layout.tsx]"]
end

subgraph group_learning["Learning Content"]
  node_blog["Blog<br/>[index.tsx]"]
  node_docs["Tutorial docs"]
  node_courses["Courses<br/>[index.tsx]"]
  node_ebooks["Ebooks<br/>[index.tsx]"]
  node_get_started["Get started<br/>[index.tsx]"]
  node_projects["Projects<br/>[index.tsx]"]
end

subgraph group_community["Community Engagement"]
  node_community["Community page<br/>[index.tsx]"]
  node_github_activity["Contributor activity<br/>[index.tsx]"]
  node_broadcasts["Broadcasts<br/>[index.tsx]"]
  node_podcasts["Podcasts<br/>[index.tsx]"]
end

subgraph group_offerings["Programs &amp; Offerings"]
  node_dashboard["Learner dashboard<br/>[index.tsx]"]
  node_merch["Merchandise<br/>[index.tsx]"]
  node_sponsors["Sponsors<br/>[index.tsx]"]
  node_careers["Careers<br/>[index.tsx]"]
end

subgraph group_internal["Supporting Data"]
  node_github_stats["GitHub statistics<br/>[githubService.ts]"]
  node_stats_provider["Stats provider<br/>[statsProvider.tsx]"]
  node_shopify["Shopify integration<br/>[shopify.ts]"]
end

node_visitor(("Site visitor"))
node_github_api{{"GitHub API"}}
node_shopify_service{{"Shopify"}}

node_visitor -->|"opens site"| node_site_layout
node_site_layout -->|"renders"| node_home
node_home -->|"shows carousel"| node_blog
node_home -->|"shows community"| node_community
node_visitor -->|"reads tutorials"| node_docs
node_visitor -->|"explores courses"| node_courses
node_visitor -->|"browses ebooks"| node_ebooks
node_visitor -->|"plans learning"| node_get_started
node_visitor -->|"views projects"| node_projects
node_visitor -->|"views broadcasts"| node_broadcasts
node_visitor -->|"plays podcasts"| node_podcasts
node_visitor -->|"opens dashboard"| node_dashboard
node_visitor -->|"browses merch"| node_merch
node_visitor -->|"views sponsors"| node_sponsors
node_visitor -->|"views careers"| node_careers
node_community -->|"reads stats context"| node_stats_provider
node_home -->|"provides stats context"| node_stats_provider
node_stats_provider -->|"gets metrics"| node_github_stats
node_github_stats -->|"requests metrics"| node_github_api
node_github_activity -->|"fetches activity"| node_github_api
node_merch -.->|"uses commerce"| node_shopify
node_shopify -.->|"requests products"| node_shopify_service

click node_home "https://github.com/recodehive/recode-website/blob/main/src/pages/index.tsx"
click node_site_layout "https://github.com/recodehive/recode-website/blob/main/src/theme/Layout.tsx"
click node_blog "https://github.com/recodehive/recode-website/blob/main/src/pages/blogs/index.tsx"
click node_docs "https://github.com/recodehive/recode-website/tree/main/docs"
click node_courses "https://github.com/recodehive/recode-website/blob/main/src/pages/courses/index.tsx"
click node_ebooks "https://github.com/recodehive/recode-website/blob/main/src/pages/ebooks/index.tsx"
click node_get_started "https://github.com/recodehive/recode-website/blob/main/src/pages/get-started/index.tsx"
click node_projects "https://github.com/recodehive/recode-website/blob/main/src/pages/showcase/index.tsx"
click node_community "https://github.com/recodehive/recode-website/blob/main/src/pages/community/index.tsx"
click node_github_activity "https://github.com/recodehive/recode-website/blob/main/src/components/FloatingContributors/index.tsx"
click node_github_stats "https://github.com/recodehive/recode-website/blob/main/src/services/githubService.ts"
click node_stats_provider "https://github.com/recodehive/recode-website/blob/main/src/lib/statsProvider.tsx"
click node_broadcasts "https://github.com/recodehive/recode-website/blob/main/src/pages/broadcasts/index.tsx"
click node_podcasts "https://github.com/recodehive/recode-website/blob/main/src/pages/podcasts/index.tsx"
click node_dashboard "https://github.com/recodehive/recode-website/blob/main/src/pages/dashboard/index.tsx"
click node_merch "https://github.com/recodehive/recode-website/blob/main/src/pages/merch/index.tsx"
click node_shopify "https://github.com/recodehive/recode-website/blob/main/src/lib/shopify.ts"
click node_sponsors "https://github.com/recodehive/recode-website/blob/main/src/pages/our-sponsors/index.tsx"
click node_careers "https://github.com/recodehive/recode-website/blob/main/src/pages/careers/index.tsx"

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_site_layout toneBlue
class node_blog,node_docs,node_courses,node_ebooks,node_get_started,node_projects toneAmber
class node_community,node_github_activity,node_broadcasts,node_podcasts,node_github_api toneMint
class node_dashboard,node_merch,node_sponsors,node_careers toneRose
class node_github_stats,node_stats_provider,node_shopify,node_visitor,node_shopify_service toneIndigo
```

## Components

### Site Experience

- [Home page](https://github.com/recodehive/recode-website/blob/main/src/pages/index.tsx): `src/pages/index.tsx`
- [Site layout](https://github.com/recodehive/recode-website/blob/main/src/theme/Layout.tsx): `src/theme/Layout.tsx`

### Learning Content

- [Blog](https://github.com/recodehive/recode-website/blob/main/src/pages/blogs/index.tsx): `src/pages/blogs/index.tsx`
- [Tutorial docs](https://github.com/recodehive/recode-website/tree/main/docs): `docs`
- [Courses](https://github.com/recodehive/recode-website/blob/main/src/pages/courses/index.tsx): `src/pages/courses/index.tsx`
- [Ebooks](https://github.com/recodehive/recode-website/blob/main/src/pages/ebooks/index.tsx): `src/pages/ebooks/index.tsx`
- [Get started](https://github.com/recodehive/recode-website/blob/main/src/pages/get-started/index.tsx): `src/pages/get-started/index.tsx`
- [Projects](https://github.com/recodehive/recode-website/blob/main/src/pages/showcase/index.tsx): `src/pages/showcase/index.tsx`

### Community Engagement

- [Community page](https://github.com/recodehive/recode-website/blob/main/src/pages/community/index.tsx): `src/pages/community/index.tsx`
- [Contributor activity](https://github.com/recodehive/recode-website/blob/main/src/components/FloatingContributors/index.tsx): `src/components/FloatingContributors/index.tsx`
- [Broadcasts](https://github.com/recodehive/recode-website/blob/main/src/pages/broadcasts/index.tsx): `src/pages/broadcasts/index.tsx`
- [Podcasts](https://github.com/recodehive/recode-website/blob/main/src/pages/podcasts/index.tsx): `src/pages/podcasts/index.tsx`

### Programs & Offerings

- [Learner dashboard](https://github.com/recodehive/recode-website/blob/main/src/pages/dashboard/index.tsx): `src/pages/dashboard/index.tsx`
- [Merchandise](https://github.com/recodehive/recode-website/blob/main/src/pages/merch/index.tsx): `src/pages/merch/index.tsx`
- [Sponsors](https://github.com/recodehive/recode-website/blob/main/src/pages/our-sponsors/index.tsx): `src/pages/our-sponsors/index.tsx`
- [Careers](https://github.com/recodehive/recode-website/blob/main/src/pages/careers/index.tsx): `src/pages/careers/index.tsx`

### Supporting Data

- [GitHub statistics](https://github.com/recodehive/recode-website/blob/main/src/services/githubService.ts): `src/services/githubService.ts`
- [Stats provider](https://github.com/recodehive/recode-website/blob/main/src/lib/statsProvider.tsx): `src/lib/statsProvider.tsx`
- [Shopify integration](https://github.com/recodehive/recode-website/blob/main/src/lib/shopify.ts): `src/lib/shopify.ts`

### Other components

- **Site visitor**
- **GitHub API**
- **Shopify**

## Connections

- Site visitor → Site layout: opens site
- Site layout → Home page: renders
- Home page → Blog: shows carousel
- Home page → Community page: shows community
- Site visitor → Tutorial docs: reads tutorials
- Site visitor → Courses: explores courses
- Site visitor → Ebooks: browses ebooks
- Site visitor → Get started: plans learning
- Site visitor → Projects: views projects
- Site visitor → Broadcasts: views broadcasts
- Site visitor → Podcasts: plays podcasts
- Site visitor → Learner dashboard: opens dashboard
- Site visitor → Merchandise: browses merch
- Site visitor → Sponsors: views sponsors
- Site visitor → Careers: views careers
- Community page → Stats provider: reads stats context
- Home page → Stats provider: provides stats context
- Stats provider → GitHub statistics: gets metrics
- GitHub statistics → GitHub API: requests metrics
- Contributor activity → GitHub API: fetches activity
- Merchandise → Shopify integration: uses commerce
- Shopify integration → Shopify: requests products
