# crusaderay/sites architecture

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

- Interactive diagram: https://gitdiagram.com/crusaderay/sites
- Repository: https://github.com/crusaderay/sites

## Overview

This is a static personal portfolio and web presence: visitors can view the homepage, browse technical blog posts, and reach app introductions and sharing pages. The tree identifies these content areas, but the README is empty and the sampled source is limited to script.js; page-to-page links and script loading are not verified, so those connections are omitted.

Main entry points: [`index.html`](https://github.com/crusaderay/sites/blob/main/index.html) (Portfolio homepage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portfolio["Portfolio site"]
  node_home["Portfolio homepage<br/>[index.html]"]
  node_interactions["Page interactions<br/>[script.js]"]
  node_blog["Technical articles"]
end

subgraph group_apps["App introductions"]
  node_appstore["Image generator page<br/>[index.html]"]
  node_deskward["Deskward intro<br/>[index.html]"]
  node_mdreader["Markdown reader intro<br/>[index.html]"]
  node_memo["Sticky memo intro<br/>[index.html]"]
  node_pixelwarzone["Pixel Warzone intro<br/>[index.html]"]
  node_portablehole["Portable Hole intro<br/>[index.html]"]
  node_sshed["SShed intro<br/>[index.html]"]
  node_tipsmart["Tip Smart intro<br/>[index.html]"]
  node_whisperline["Whisperline intro<br/>[index.html]"]
end

subgraph group_sharing["Sharing pages"]
  node_portable_share["Portable Hole sharing"]
  node_postit_share["Post-it sharing"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_home

click node_home "https://github.com/crusaderay/sites/blob/main/index.html"
click node_interactions "https://github.com/crusaderay/sites/blob/main/script.js"
click node_blog "https://github.com/crusaderay/sites/tree/main/blog"
click node_appstore "https://github.com/crusaderay/sites/blob/main/app_store_img_generator_free/index.html"
click node_deskward "https://github.com/crusaderay/sites/blob/main/deskward-intro/index.html"
click node_mdreader "https://github.com/crusaderay/sites/blob/main/md-reader-intro/index.html"
click node_memo "https://github.com/crusaderay/sites/blob/main/memo-sticky-intro/index.html"
click node_pixelwarzone "https://github.com/crusaderay/sites/blob/main/pixel-warzone-intro/index.html"
click node_portablehole "https://github.com/crusaderay/sites/blob/main/portableHole-intro/index.html"
click node_sshed "https://github.com/crusaderay/sites/blob/main/sshed-intro/index.html"
click node_tipsmart "https://github.com/crusaderay/sites/blob/main/tip-smart-intro/index.html"
click node_whisperline "https://github.com/crusaderay/sites/blob/main/whisperline-intro/index.html"
click node_portable_share "https://github.com/crusaderay/sites/tree/main/portable_hole_share"
click node_postit_share "https://github.com/crusaderay/sites/tree/main/post_it_note_share"

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_interactions,node_blog toneBlue
class node_appstore,node_deskward,node_mdreader,node_memo,node_pixelwarzone,node_portablehole,node_sshed,node_tipsmart,node_whisperline toneAmber
class node_portable_share,node_postit_share toneMint
class node_visitor toneIndigo
```

## Components

### Portfolio site

- [Portfolio homepage](https://github.com/crusaderay/sites/blob/main/index.html): `index.html`
- [Page interactions](https://github.com/crusaderay/sites/blob/main/script.js): `script.js`
- [Technical articles](https://github.com/crusaderay/sites/tree/main/blog): `blog`

### App introductions

- [Image generator page](https://github.com/crusaderay/sites/blob/main/app_store_img_generator_free/index.html): `app_store_img_generator_free/index.html`
- [Deskward intro](https://github.com/crusaderay/sites/blob/main/deskward-intro/index.html): `deskward-intro/index.html`
- [Markdown reader intro](https://github.com/crusaderay/sites/blob/main/md-reader-intro/index.html): `md-reader-intro/index.html`
- [Sticky memo intro](https://github.com/crusaderay/sites/blob/main/memo-sticky-intro/index.html): `memo-sticky-intro/index.html`
- [Pixel Warzone intro](https://github.com/crusaderay/sites/blob/main/pixel-warzone-intro/index.html): `pixel-warzone-intro/index.html`
- [Portable Hole intro](https://github.com/crusaderay/sites/blob/main/portableHole-intro/index.html): `portableHole-intro/index.html`
- [SShed intro](https://github.com/crusaderay/sites/blob/main/sshed-intro/index.html): `sshed-intro/index.html`
- [Tip Smart intro](https://github.com/crusaderay/sites/blob/main/tip-smart-intro/index.html): `tip-smart-intro/index.html`
- [Whisperline intro](https://github.com/crusaderay/sites/blob/main/whisperline-intro/index.html): `whisperline-intro/index.html`

### Sharing pages

- [Portable Hole sharing](https://github.com/crusaderay/sites/tree/main/portable_hole_share): `portable_hole_share`
- [Post-it sharing](https://github.com/crusaderay/sites/tree/main/post_it_note_share): `post_it_note_share`

### Other components

- **Visitor**

## Connections

- Visitor → Portfolio homepage: opens
