# flappybeans/voidfest architecture

> Architecture diagram of the GitHub repository flappybeans/voidfest, 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/flappybeans/voidfest
- Repository: https://github.com/flappybeans/voidfest

## Overview

VOID FEST is an event website for promoting a skate jam and hardcore gig, presenting its lineup and organization, selling tickets, and receiving booking inquiries. The main purchase flow is home-page ticket entry, ticket form submission, server-side code reservation and email delivery, then a receipt shown to the buyer; payment is explicitly mocked, not charged. A separate inquiry flow emails the organizers. The tree identifies additional info and eventpass pages, but their behavior and wiring were not sampled, so they are shown without inferred connections.

Main entry points: [`app/api/purchase-tickets/route.ts`](https://github.com/flappybeans/voidfest/blob/main/app/api/purchase-tickets/route.ts) (Ticket purchase), [`app/components/tixcard/TixCard.tsx`](https://github.com/flappybeans/voidfest/blob/main/app/components/tixcard/TixCard.tsx) (Ticket form and receipt), [`app/page.tsx`](https://github.com/flappybeans/voidfest/blob/main/app/page.tsx) (Event home), [`app/lineup/page.tsx`](https://github.com/flappybeans/voidfest/blob/main/app/lineup/page.tsx) (Lineup page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_event["Event website"]
  node_home["Event home<br/>[page.tsx]"]
  node_lineup["Lineup page<br/>[page.tsx]"]
  node_bandcard["Band details<br/>[BandInfoCard.tsx]"]
  node_about["About page<br/>[page.tsx]"]
  node_info["Info page<br/>[page.tsx]"]
  node_eventpass["Event pass page<br/>[page.tsx]"]
  node_layout["App layout<br/>[layout.tsx]"]
end

subgraph group_engagement["Visitor engagement"]
  node_header["Navigation header<br/>[Header.tsx]"]
  node_footer["Social footer<br/>[Footer.tsx]"]
  node_tickets["Ticket form and receipt<br/>[TixCard.tsx]"]
  node_hire["Inquiry form<br/>[HireCard.tsx]"]
end

subgraph group_services["Server services"]
  node_purchase_api["Ticket purchase<br/>[route.ts]"]
  node_hire_api["Inquiry endpoint<br/>[route.ts]"]
  node_redis[("Ticket counter")]
  node_resend["Resend email"]
end

node_visitor(("Visitor"))

node_visitor -->|"visits"| node_home
node_visitor -->|"views"| node_lineup
node_visitor -->|"views"| node_about
node_visitor -->|"views"| node_info
node_visitor -->|"views"| node_eventpass
node_lineup -->|"renders"| node_bandcard
node_home -->|"opens"| node_tickets
node_header -->|"opens"| node_tickets
node_tickets -->|"submits order"| node_purchase_api
node_purchase_api -->|"increments counter"| node_redis
node_purchase_api -->|"sends tickets"| node_resend
node_purchase_api -->|"returns codes"| node_tickets
node_about -->|"opens"| node_hire
node_hire -->|"submits inquiry"| node_hire_api
node_hire_api -->|"emails inquiry"| node_resend

click node_home "https://github.com/flappybeans/voidfest/blob/main/app/page.tsx"
click node_lineup "https://github.com/flappybeans/voidfest/blob/main/app/lineup/page.tsx"
click node_bandcard "https://github.com/flappybeans/voidfest/blob/main/app/components/bandinfocard/BandInfoCard.tsx"
click node_about "https://github.com/flappybeans/voidfest/blob/main/app/about/page.tsx"
click node_info "https://github.com/flappybeans/voidfest/blob/main/app/info/page.tsx"
click node_eventpass "https://github.com/flappybeans/voidfest/blob/main/app/eventpass/page.tsx"
click node_layout "https://github.com/flappybeans/voidfest/blob/main/app/layout.tsx"
click node_header "https://github.com/flappybeans/voidfest/blob/main/app/components/header/Header.tsx"
click node_footer "https://github.com/flappybeans/voidfest/blob/main/app/components/footer/Footer.tsx"
click node_tickets "https://github.com/flappybeans/voidfest/blob/main/app/components/tixcard/TixCard.tsx"
click node_hire "https://github.com/flappybeans/voidfest/blob/main/app/components/hirecard/HireCard.tsx"
click node_purchase_api "https://github.com/flappybeans/voidfest/blob/main/app/api/purchase-tickets/route.ts"
click node_hire_api "https://github.com/flappybeans/voidfest/blob/main/app/api/hire-us/route.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_home,node_lineup,node_bandcard,node_about,node_info,node_eventpass,node_layout toneBlue
class node_header,node_footer,node_tickets,node_hire toneAmber
class node_purchase_api,node_hire_api,node_redis,node_resend toneMint
class node_visitor toneIndigo
```

## Components

### Event website

- [Event home](https://github.com/flappybeans/voidfest/blob/main/app/page.tsx): `app/page.tsx`
- [Lineup page](https://github.com/flappybeans/voidfest/blob/main/app/lineup/page.tsx): `app/lineup/page.tsx`
- [Band details](https://github.com/flappybeans/voidfest/blob/main/app/components/bandinfocard/BandInfoCard.tsx): `app/components/bandinfocard/BandInfoCard.tsx`
- [About page](https://github.com/flappybeans/voidfest/blob/main/app/about/page.tsx): `app/about/page.tsx`
- [Info page](https://github.com/flappybeans/voidfest/blob/main/app/info/page.tsx): `app/info/page.tsx`
- [Event pass page](https://github.com/flappybeans/voidfest/blob/main/app/eventpass/page.tsx): `app/eventpass/page.tsx`
- [App layout](https://github.com/flappybeans/voidfest/blob/main/app/layout.tsx): `app/layout.tsx`

### Visitor engagement

- [Navigation header](https://github.com/flappybeans/voidfest/blob/main/app/components/header/Header.tsx): `app/components/header/Header.tsx`
- [Social footer](https://github.com/flappybeans/voidfest/blob/main/app/components/footer/Footer.tsx): `app/components/footer/Footer.tsx`
- [Ticket form and receipt](https://github.com/flappybeans/voidfest/blob/main/app/components/tixcard/TixCard.tsx): `app/components/tixcard/TixCard.tsx`
- [Inquiry form](https://github.com/flappybeans/voidfest/blob/main/app/components/hirecard/HireCard.tsx): `app/components/hirecard/HireCard.tsx`

### Server services

- [Ticket purchase](https://github.com/flappybeans/voidfest/blob/main/app/api/purchase-tickets/route.ts): `app/api/purchase-tickets/route.ts`
- [Inquiry endpoint](https://github.com/flappybeans/voidfest/blob/main/app/api/hire-us/route.ts): `app/api/hire-us/route.ts`
- **Ticket counter**
- **Resend email**

### Other components

- **Visitor**

## Connections

- Visitor → Event home: visits
- Visitor → Lineup page: views
- Visitor → About page: views
- Visitor → Info page: views
- Visitor → Event pass page: views
- Lineup page → Band details: renders
- Event home → Ticket form and receipt: opens
- Navigation header → Ticket form and receipt: opens
- Ticket form and receipt → Ticket purchase: submits order
- Ticket purchase → Ticket counter: increments counter
- Ticket purchase → Resend email: sends tickets
- Ticket purchase → Ticket form and receipt: returns codes
- About page → Inquiry form: opens
- Inquiry form → Inquiry endpoint: submits inquiry
- Inquiry endpoint → Resend email: emails inquiry
