# 0xmetamonkey/supertime architecture

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

- Interactive diagram: https://gitdiagram.com/0xmetamonkey/supertime
- Repository: https://github.com/0xmetamonkey/supertime

## Overview

Supertime is a creator marketplace for monetizing time and audience interaction. The main journey is discovering a creator, visiting their profile, and booking or purchasing an offering; creators configure their presence and manage products, audience, and earnings in Studio and the dashboard. The product also includes live calls, broadcasts, chat, fundraising, and subscriptions. The graph uses README claims and indexed imports or shown calls for its links; several route-level and integration details are unsampled, so their connections are omitted where evidence is insufficient.

Main entry points: [`app/[username]/CreatorClient.tsx`](https://github.com/0xmetamonkey/supertime/blob/master/app/%5Busername%5D/CreatorClient.tsx) (Creator Profile), [`app/components/WalletManager.tsx`](https://github.com/0xmetamonkey/supertime/blob/master/app/components/WalletManager.tsx) (Wallet Manager), [`app/api/chat/route.ts`](https://github.com/0xmetamonkey/supertime/blob/master/app/api/chat/route.ts) (Chat API), [`app/api/payment/purchase/route.ts`](https://github.com/0xmetamonkey/supertime/blob/master/app/api/payment/purchase/route.ts) (Purchase API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_market["Discovery and Profiles"]
  node_landing["Landing Page"]
  node_explore["Creator Discovery<br/>[ExploreClient.tsx]"]
  node_profile["Creator Profile<br/>[CreatorClient.tsx]"]
  node_fundraiser_page["Fundraiser Page"]
end

subgraph group_creator["Creator Operations"]
  node_dashboard["Creator Dashboard"]
  node_studio["Creator Studio<br/>[StudioClient.tsx]"]
  node_fundraiser_ui["Fundraiser Setup"]
end

subgraph group_commerce["Payments and Earnings"]
  node_fundraiser_api["Fundraising API<br/>[route.ts]"]
  node_wallet_ui["Wallet Manager<br/>[WalletManager.tsx]"]
  node_wallet_api["Wallet API<br/>[route.ts]"]
  node_purchase_api["Purchase API<br/>[route.ts]"]
  node_booking_api["Booking API<br/>[route.ts]"]
end

subgraph group_interaction["Live Interaction"]
  node_call_ui["Call Experience<br/>[CallStage.tsx]"]
  node_broadcast_host["Broadcast Hosting<br/>[BroadcastHost.tsx]"]
  node_broadcast_viewer["Broadcast Viewing"]
  node_chat_api["Chat API<br/>[route.ts]"]
  node_bot_logic["Chat Bot Logic<br/>[bot-logic.ts]"]
end

subgraph group_platform["Platform Services"]
  node_email["Email Service<br/>[email.ts]"]
  node_ably["Ably Realtime<br/>[ably.tsx]"]
  node_kv[("Vercel KV")]
  node_agora["Agora RTC"]
  node_razorpay["Razorpay"]
end

node_visitor(("Visitor"))
node_creator_actor(("Creator"))

node_visitor -->|"visits"| node_landing
node_landing -->|"links to"| node_explore
node_visitor -->|"discovers creators"| node_explore
node_explore -.->|"opens profile"| node_profile
node_visitor -->|"views offerings"| node_profile
node_creator_actor -->|"configures presence"| node_studio
node_creator_actor -->|"manages creator account"| node_dashboard
node_dashboard -->|"renders"| node_fundraiser_ui
node_fundraiser_ui -->|"links to"| node_fundraiser_page
node_visitor -->|"supports creator"| node_fundraiser_page
node_fundraiser_page -.->|"submits contribution"| node_fundraiser_api
node_profile -->|"renders"| node_wallet_ui
node_wallet_ui -->|"reads balance"| node_wallet_api
node_wallet_ui -->|"initiates payment"| node_razorpay
node_wallet_ui -->|"verifies payment"| node_purchase_api
node_visitor -->|"purchases offering"| node_purchase_api
node_purchase_api -->|"creates booking"| node_booking_api
node_booking_api -->|"sends confirmations"| node_email
node_purchase_api -->|"sends receipt"| node_email
node_profile -->|"opens call"| node_call_ui
node_profile -->|"renders"| node_broadcast_viewer
node_studio -->|"renders"| node_broadcast_host
node_creator_actor -->|"hosts broadcast"| node_broadcast_host
node_broadcast_host -->|"uses realtime"| node_ably
node_broadcast_viewer -->|"uses realtime"| node_ably
node_visitor -.->|"sends messages"| node_chat_api
node_chat_api -->|"gets bot reply"| node_bot_logic
node_chat_api -->|"publishes messages"| node_ably
node_chat_api -->|"reads and writes messages"| node_kv
node_call_ui -->|"uses RTC"| node_agora

click node_landing "https://github.com/0xmetamonkey/supertime/blob/master/app/LandingPageClient.tsx"
click node_explore "https://github.com/0xmetamonkey/supertime/blob/master/app/explore/ExploreClient.tsx"
click node_profile "https://github.com/0xmetamonkey/supertime/blob/master/app/%5Busername%5D/CreatorClient.tsx"
click node_dashboard "https://github.com/0xmetamonkey/supertime/blob/master/app/dashboard/DashboardClient.tsx"
click node_studio "https://github.com/0xmetamonkey/supertime/blob/master/app/studio/StudioClient.tsx"
click node_fundraiser_ui "https://github.com/0xmetamonkey/supertime/blob/master/app/dashboard/FundraiserManager.tsx"
click node_fundraiser_api "https://github.com/0xmetamonkey/supertime/blob/master/app/api/fundraise/route.ts"
click node_fundraiser_page "https://github.com/0xmetamonkey/supertime/blob/master/app/fundraise/%5Busername%5D/FundraiserClient.tsx"
click node_wallet_ui "https://github.com/0xmetamonkey/supertime/blob/master/app/components/WalletManager.tsx"
click node_wallet_api "https://github.com/0xmetamonkey/supertime/blob/master/app/api/wallet/route.ts"
click node_purchase_api "https://github.com/0xmetamonkey/supertime/blob/master/app/api/payment/purchase/route.ts"
click node_booking_api "https://github.com/0xmetamonkey/supertime/blob/master/app/api/call/book/route.ts"
click node_email "https://github.com/0xmetamonkey/supertime/blob/master/app/lib/email.ts"
click node_call_ui "https://github.com/0xmetamonkey/supertime/blob/master/app/components/SuperCall/CallStage.tsx"
click node_broadcast_host "https://github.com/0xmetamonkey/supertime/blob/master/app/components/Broadcast/BroadcastHost.tsx"
click node_broadcast_viewer "https://github.com/0xmetamonkey/supertime/blob/master/app/components/Broadcast/BroadcastViewer.tsx"
click node_chat_api "https://github.com/0xmetamonkey/supertime/blob/master/app/api/chat/route.ts"
click node_bot_logic "https://github.com/0xmetamonkey/supertime/blob/master/app/lib/bot-logic.ts"
click node_ably "https://github.com/0xmetamonkey/supertime/blob/master/app/lib/ably.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_landing,node_explore,node_profile,node_fundraiser_page toneBlue
class node_dashboard,node_studio,node_fundraiser_ui toneAmber
class node_fundraiser_api,node_wallet_ui,node_wallet_api,node_purchase_api,node_booking_api toneMint
class node_call_ui,node_broadcast_host,node_broadcast_viewer,node_chat_api,node_bot_logic toneRose
class node_email,node_ably,node_kv,node_agora,node_razorpay,node_visitor,node_creator_actor toneIndigo
```

## Components

### Discovery and Profiles

- [Landing Page](https://github.com/0xmetamonkey/supertime/blob/master/app/LandingPageClient.tsx): `app/LandingPageClient.tsx`
- [Creator Discovery](https://github.com/0xmetamonkey/supertime/blob/master/app/explore/ExploreClient.tsx): `app/explore/ExploreClient.tsx`
- [Creator Profile](https://github.com/0xmetamonkey/supertime/blob/master/app/%5Busername%5D/CreatorClient.tsx): `app/[username]/CreatorClient.tsx`
- [Fundraiser Page](https://github.com/0xmetamonkey/supertime/blob/master/app/fundraise/%5Busername%5D/FundraiserClient.tsx): `app/fundraise/[username]/FundraiserClient.tsx`

### Creator Operations

- [Creator Dashboard](https://github.com/0xmetamonkey/supertime/blob/master/app/dashboard/DashboardClient.tsx): `app/dashboard/DashboardClient.tsx`
- [Creator Studio](https://github.com/0xmetamonkey/supertime/blob/master/app/studio/StudioClient.tsx): `app/studio/StudioClient.tsx`
- [Fundraiser Setup](https://github.com/0xmetamonkey/supertime/blob/master/app/dashboard/FundraiserManager.tsx): `app/dashboard/FundraiserManager.tsx`

### Payments and Earnings

- [Fundraising API](https://github.com/0xmetamonkey/supertime/blob/master/app/api/fundraise/route.ts): `app/api/fundraise/route.ts`
- [Wallet Manager](https://github.com/0xmetamonkey/supertime/blob/master/app/components/WalletManager.tsx): `app/components/WalletManager.tsx`
- [Wallet API](https://github.com/0xmetamonkey/supertime/blob/master/app/api/wallet/route.ts): `app/api/wallet/route.ts`
- [Purchase API](https://github.com/0xmetamonkey/supertime/blob/master/app/api/payment/purchase/route.ts): `app/api/payment/purchase/route.ts`
- [Booking API](https://github.com/0xmetamonkey/supertime/blob/master/app/api/call/book/route.ts): `app/api/call/book/route.ts`

### Live Interaction

- [Call Experience](https://github.com/0xmetamonkey/supertime/blob/master/app/components/SuperCall/CallStage.tsx): `app/components/SuperCall/CallStage.tsx`
- [Broadcast Hosting](https://github.com/0xmetamonkey/supertime/blob/master/app/components/Broadcast/BroadcastHost.tsx): `app/components/Broadcast/BroadcastHost.tsx`
- [Broadcast Viewing](https://github.com/0xmetamonkey/supertime/blob/master/app/components/Broadcast/BroadcastViewer.tsx): `app/components/Broadcast/BroadcastViewer.tsx`
- [Chat API](https://github.com/0xmetamonkey/supertime/blob/master/app/api/chat/route.ts): `app/api/chat/route.ts`
- [Chat Bot Logic](https://github.com/0xmetamonkey/supertime/blob/master/app/lib/bot-logic.ts): `app/lib/bot-logic.ts`

### Platform Services

- [Email Service](https://github.com/0xmetamonkey/supertime/blob/master/app/lib/email.ts): `app/lib/email.ts`
- [Ably Realtime](https://github.com/0xmetamonkey/supertime/blob/master/app/lib/ably.tsx): `app/lib/ably.tsx`
- **Vercel KV**
- **Agora RTC**
- **Razorpay**

### Other components

- **Visitor**
- **Creator**

## Connections

- Visitor → Landing Page: visits
- Landing Page → Creator Discovery: links to (evidence: `app/LandingPageClient.tsx`)
- Visitor → Creator Discovery: discovers creators
- Creator Discovery → Creator Profile: opens profile
- Visitor → Creator Profile: views offerings
- Creator → Creator Studio: configures presence (evidence: `app/studio/StudioClient.tsx`)
- Creator → Creator Dashboard: manages creator account (evidence: `app/dashboard/DashboardClient.tsx`)
- Creator Dashboard → Fundraiser Setup: renders (evidence: `app/dashboard/DashboardClient.tsx`)
- Fundraiser Setup → Fundraiser Page: links to (evidence: `app/dashboard/FundraiserManager.tsx`)
- Visitor → Fundraiser Page: supports creator
- Fundraiser Page → Fundraising API: submits contribution
- Creator Profile → Wallet Manager: renders (evidence: `app/[username]/CreatorClient.tsx`)
- Wallet Manager → Wallet API: reads balance (evidence: `app/components/WalletManager.tsx`)
- Wallet Manager → Razorpay: initiates payment (evidence: `app/components/WalletManager.tsx`)
- Wallet Manager → Purchase API: verifies payment (evidence: `app/components/WalletManager.tsx`)
- Visitor → Purchase API: purchases offering
- Purchase API → Booking API: creates booking (evidence: `app/api/payment/purchase/route.ts`)
- Booking API → Email Service: sends confirmations (evidence: `app/api/call/book/route.ts`)
- Purchase API → Email Service: sends receipt (evidence: `app/api/payment/purchase/route.ts`)
- Creator Profile → Call Experience: opens call (evidence: `app/[username]/CreatorClient.tsx`)
- Creator Profile → Broadcast Viewing: renders (evidence: `app/[username]/CreatorClient.tsx`)
- Creator Studio → Broadcast Hosting: renders (evidence: `app/studio/StudioClient.tsx`)
- Creator → Broadcast Hosting: hosts broadcast
- Broadcast Hosting → Ably Realtime: uses realtime (evidence: `app/components/Broadcast/BroadcastHost.tsx`)
- Broadcast Viewing → Ably Realtime: uses realtime (evidence: `app/components/Broadcast/BroadcastViewer.tsx`)
- Visitor → Chat API: sends messages
- Chat API → Chat Bot Logic: gets bot reply (evidence: `app/api/chat/route.ts`)
- Chat API → Ably Realtime: publishes messages (evidence: `app/api/chat/route.ts`)
- Chat API → Vercel KV: reads and writes messages (evidence: `app/api/chat/route.ts`)
- Call Experience → Agora RTC: uses RTC
