# panthosarkar/wife-anniversary-site architecture

> Architecture diagram of the GitHub repository panthosarkar/wife-anniversary-site, 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/panthosarkar/wife-anniversary-site
- Repository: https://github.com/panthosarkar/wife-anniversary-site

## Overview

This is a static romantic photo-album site. A visitor opens the home page, which presents an anniversary introduction, a customizable photo timeline, reasons for affection, and a closing letter. Shared personalization and memory content live in `lib/data.ts`; the timeline displays configured images from the public image directory. Ambient floating hearts are reused in the opening and closing sections. The component excerpts support these rendering and data relationships; no separate backend or persistent store is shown.

Main entry points: [`app/page.tsx`](https://github.com/panthosarkar/wife-anniversary-site/blob/master/app/page.tsx) (Home page), [`lib/data.ts`](https://github.com/panthosarkar/wife-anniversary-site/blob/master/lib/data.ts) (Editable content), [`components/Hero.tsx`](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/Hero.tsx) (Anniversary hero), [`components/StoryTimeline.tsx`](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/StoryTimeline.tsx) (Photo timeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_composition["Page composition"]
  node_layout["Root layout<br/>[layout.tsx]"]
  node_home["Home page<br/>[page.tsx]"]
end

subgraph group_story["Story sections"]
  node_hero["Anniversary hero<br/>[Hero.tsx]"]
  node_timeline["Photo timeline<br/>[StoryTimeline.tsx]"]
  node_notes["Love notes<br/>[LoveNotes.tsx]"]
  node_closing["Closing letter<br/>[ClosingSection.tsx]"]
end

subgraph group_shared["Shared content and visuals"]
  node_content["Editable content<br/>[data.ts]"]
  node_hearts["Floating hearts<br/>[FloatingHearts.tsx]"]
  node_photos["Photo assets"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_home
node_layout -->|"wraps"| node_home
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_timeline
node_home -->|"renders"| node_notes
node_home -->|"renders"| node_closing
node_hero -->|"reads names"| node_content
node_timeline -->|"reads memories"| node_content
node_timeline -->|"loads configured images"| node_photos
node_notes -->|"reads notes"| node_content
node_closing -->|"reads letter and names"| node_content
node_hero -->|"renders hearts"| node_hearts
node_closing -->|"renders hearts"| node_hearts

click node_layout "https://github.com/panthosarkar/wife-anniversary-site/blob/master/app/layout.tsx"
click node_home "https://github.com/panthosarkar/wife-anniversary-site/blob/master/app/page.tsx"
click node_hero "https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/Hero.tsx"
click node_timeline "https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/StoryTimeline.tsx"
click node_notes "https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/LoveNotes.tsx"
click node_closing "https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/ClosingSection.tsx"
click node_content "https://github.com/panthosarkar/wife-anniversary-site/blob/master/lib/data.ts"
click node_hearts "https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/FloatingHearts.tsx"
click node_photos "https://github.com/panthosarkar/wife-anniversary-site/tree/master/public/images"

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_layout,node_home toneBlue
class node_hero,node_timeline,node_notes,node_closing toneAmber
class node_content,node_hearts,node_photos toneMint
class node_visitor toneIndigo
```

## Components

### Page composition

- [Root layout](https://github.com/panthosarkar/wife-anniversary-site/blob/master/app/layout.tsx): `app/layout.tsx`
- [Home page](https://github.com/panthosarkar/wife-anniversary-site/blob/master/app/page.tsx): `app/page.tsx`

### Story sections

- [Anniversary hero](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/Hero.tsx): `components/Hero.tsx`
- [Photo timeline](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/StoryTimeline.tsx): `components/StoryTimeline.tsx`
- [Love notes](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/LoveNotes.tsx): `components/LoveNotes.tsx`
- [Closing letter](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/ClosingSection.tsx): `components/ClosingSection.tsx`

### Shared content and visuals

- [Editable content](https://github.com/panthosarkar/wife-anniversary-site/blob/master/lib/data.ts): `lib/data.ts`
- [Floating hearts](https://github.com/panthosarkar/wife-anniversary-site/blob/master/components/FloatingHearts.tsx): `components/FloatingHearts.tsx`
- [Photo assets](https://github.com/panthosarkar/wife-anniversary-site/tree/master/public/images): `public/images`

### Other components

- **Visitor**

## Connections

- Visitor → Home page: opens
- Root layout → Home page: wraps
- Home page → Anniversary hero: renders
- Home page → Photo timeline: renders
- Home page → Love notes: renders
- Home page → Closing letter: renders
- Anniversary hero → Editable content: reads names
- Photo timeline → Editable content: reads memories
- Photo timeline → Photo assets: loads configured images
- Love notes → Editable content: reads notes
- Closing letter → Editable content: reads letter and names
- Anniversary hero → Floating hearts: renders hearts
- Closing letter → Floating hearts: renders hearts
