# ralphpaololaude/portfolio architecture

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

- Interactive diagram: https://gitdiagram.com/ralphpaololaude/portfolio
- Repository: https://github.com/ralphpaololaude/portfolio

## Overview

This is a personal portfolio and writing site for a technical documentation professional expanding into AI workflow automation. Its visible product areas include a profile, experience and about pages, project write-ups, and a blog. The tree also shows project/blog archives, detail pages, and tag browsing, backed by Astro content collections and post/date utilities. Source excerpts establish only a few internal links; other page-to-component wiring is omitted rather than inferred.

Main entry points: [`src/config.ts`](https://github.com/ralphpaololaude/portfolio/blob/main/src/config.ts) (Profile content), [`src/utils/posts.ts`](https://github.com/ralphpaololaude/portfolio/blob/main/src/utils/posts.ts) (Post filtering), [`src/pages/index.astro`](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/index.astro) (Home page), [`src/utils/date.ts`](https://github.com/ralphpaololaude/portfolio/blob/main/src/utils/date.ts) (Date helpers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Portfolio pages"]
  node_home["Home page<br/>[index.astro]"]
  node_about["About page<br/>[about.astro]"]
  node_profile["Profile content<br/>[config.ts]"]
end

subgraph group_publishing["Writing and projects"]
  node_blog_index["Blog archive<br/>[&#91;...page&#93;.astro]"]
  node_blog_detail["Blog article<br/>[&#91;slug&#93;.astro]"]
  node_projects_index["Project archive<br/>[&#91;...page&#93;.astro]"]
  node_project_detail["Project write-up<br/>[&#91;slug&#93;.astro]"]
  node_tag_archive["Tag archive<br/>[&#91;tag&#93;.astro]"]
  node_blog_posts["Blog entries"]
  node_project_posts["Project entries"]
end

subgraph group_shared["Shared site structure"]
  node_base_layout["Base layout<br/>[BaseLayout.astro]"]
  node_post_layout["Post layout"]
  node_site_components["Site components"]
end

subgraph group_content["Content and utilities"]
  node_content_collections["Content collections<br/>[content.config.ts]"]
  node_post_filters["Post filtering<br/>[posts.ts]"]
  node_date_helpers["Date helpers<br/>[date.ts]"]
  node_site_types["Site types<br/>[index.ts]"]
end

node_visitor(("Site visitor"))

node_post_filters -->|"checks publication dates"| node_date_helpers
node_profile -->|"uses types"| node_site_types
node_visitor -.->|"views portfolio"| node_home

click node_home "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/index.astro"
click node_about "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/about.astro"
click node_profile "https://github.com/ralphpaololaude/portfolio/blob/main/src/config.ts"
click node_blog_index "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/blog/%5B...page%5D.astro"
click node_blog_detail "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/blog/%5Bslug%5D.astro"
click node_projects_index "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/projects/%5B...page%5D.astro"
click node_project_detail "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/projects/%5Bslug%5D.astro"
click node_tag_archive "https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/tags/%5Btag%5D.astro"
click node_blog_posts "https://github.com/ralphpaololaude/portfolio/tree/main/src/pages/posts/blog"
click node_project_posts "https://github.com/ralphpaololaude/portfolio/tree/main/src/pages/posts/projects"
click node_content_collections "https://github.com/ralphpaololaude/portfolio/blob/main/src/content.config.ts"
click node_post_filters "https://github.com/ralphpaololaude/portfolio/blob/main/src/utils/posts.ts"
click node_date_helpers "https://github.com/ralphpaololaude/portfolio/blob/main/src/utils/date.ts"
click node_site_types "https://github.com/ralphpaololaude/portfolio/blob/main/src/types/index.ts"
click node_base_layout "https://github.com/ralphpaololaude/portfolio/blob/main/src/layouts/BaseLayout.astro"
click node_post_layout "https://github.com/ralphpaololaude/portfolio/blob/main/src/layouts/MarkdownPostLayout.astro"
click node_site_components "https://github.com/ralphpaololaude/portfolio/tree/main/src/components"

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_about,node_profile toneBlue
class node_blog_index,node_blog_detail,node_projects_index,node_project_detail,node_tag_archive,node_blog_posts,node_project_posts toneAmber
class node_base_layout,node_post_layout,node_site_components toneMint
class node_content_collections,node_post_filters,node_date_helpers,node_site_types toneRose
class node_visitor toneIndigo
```

## Components

### Portfolio pages

- [Home page](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/index.astro): `src/pages/index.astro`
- [About page](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/about.astro): `src/pages/about.astro`
- [Profile content](https://github.com/ralphpaololaude/portfolio/blob/main/src/config.ts): `src/config.ts`

### Writing and projects

- [Blog archive](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/blog/%5B...page%5D.astro): `src/pages/blog/[...page].astro`
- [Blog article](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/blog/%5Bslug%5D.astro): `src/pages/blog/[slug].astro`
- [Project archive](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/projects/%5B...page%5D.astro): `src/pages/projects/[...page].astro`
- [Project write-up](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/projects/%5Bslug%5D.astro): `src/pages/projects/[slug].astro`
- [Tag archive](https://github.com/ralphpaololaude/portfolio/blob/main/src/pages/tags/%5Btag%5D.astro): `src/pages/tags/[tag].astro`
- [Blog entries](https://github.com/ralphpaololaude/portfolio/tree/main/src/pages/posts/blog): `src/pages/posts/blog`
- [Project entries](https://github.com/ralphpaololaude/portfolio/tree/main/src/pages/posts/projects): `src/pages/posts/projects`

### Shared site structure

- [Base layout](https://github.com/ralphpaololaude/portfolio/blob/main/src/layouts/BaseLayout.astro): `src/layouts/BaseLayout.astro`
- [Post layout](https://github.com/ralphpaololaude/portfolio/blob/main/src/layouts/MarkdownPostLayout.astro): `src/layouts/MarkdownPostLayout.astro`
- [Site components](https://github.com/ralphpaololaude/portfolio/tree/main/src/components): `src/components`

### Content and utilities

- [Content collections](https://github.com/ralphpaololaude/portfolio/blob/main/src/content.config.ts): `src/content.config.ts`
- [Post filtering](https://github.com/ralphpaololaude/portfolio/blob/main/src/utils/posts.ts): `src/utils/posts.ts`
- [Date helpers](https://github.com/ralphpaololaude/portfolio/blob/main/src/utils/date.ts): `src/utils/date.ts`
- [Site types](https://github.com/ralphpaololaude/portfolio/blob/main/src/types/index.ts): `src/types/index.ts`

### Other components

- **Site visitor**

## Connections

- Post filtering → Date helpers: checks publication dates (evidence: `src/utils/posts.ts`)
- Profile content → Site types: uses types (evidence: `src/config.ts`)
- Site visitor → Home page: views portfolio
