# yengner/deepvisor architecture

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

## Overview

DeepVisor is an ad-account intelligence workspace for ecommerce and lead-service businesses. Operators connect an account, preserve its performance history, review assessments and recommendations, then organize follow-up work through the dashboard, calendar, reports, and campaign views. The repository separates Next.js product surfaces from server-side integration, sync, data, and intelligence layers. The README documents these capabilities and the Supabase stack; sampled source also confirms campaign-draft routes and server data access. Several detailed route-to-service connections are not evidenced by the excerpts, so the graph avoids claiming them.

Main entry points: [`src/lib/server/integrations/service.ts`](https://github.com/yengner/deepvisor/blob/main/src/lib/server/integrations/service.ts) (Integration service), [`src/lib/server/data`](https://github.com/yengner/deepvisor/tree/main/src/lib/server/data) (Data access), [`src/lib/server/intelligence/service.ts`](https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/service.ts) (Account intelligence), [`src/app/(root)/calendar/CalendarClient.tsx`](https://github.com/yengner/deepvisor/blob/main/src/app/(root)/calendar/CalendarClient.tsx) (Calendar)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_product["Product surfaces"]
  node_auth["Sign-in<br/>[AuthForm.tsx]"]
  node_onboarding["Business setup"]
  node_dashboard["Dashboard"]
  node_calendar["Calendar<br/>[CalendarClient.tsx]"]
  node_campaigns["Campaign workspace"]
  node_campaign_builder["Campaign builder<br/>[index.tsx]"]
  node_reports["Reports<br/>[ReportsClient.tsx]"]
end

subgraph group_connect["Account connection"]
  node_integrations_ui["Integration controls"]
  node_integration_service["Integration service<br/>[service.ts]"]
  node_meta{{"Meta Ads"}}
  node_sync["Account sync<br/>[index.ts]"]
end

subgraph group_analysis["Data and intelligence"]
  node_data["Data access"]
  node_assessments["Performance assessment<br/>[service.ts]"]
  node_intelligence["Account intelligence<br/>[service.ts]"]
end

subgraph group_operations["Operator workflows"]
  node_queue_processor["Queue processing"]
  node_queue_store["Calendar queue<br/>[calendarQueue.ts]"]
  node_drafts["Campaign drafts<br/>[drafts.ts]"]
end

subgraph group_platform["Platform services"]
  node_supabase[("Supabase")]
end

node_operator(("Operator"))

node_operator -->|"signs in"| node_auth
node_operator -->|"sets up business"| node_onboarding
node_operator -->|"connects account"| node_integrations_ui
node_integrations_ui -.->|"manages connection"| node_integration_service
node_integration_service -->|"validates and fetches"| node_meta
node_integration_service -->|"persists integration"| node_supabase
node_meta -->|"provides account history"| node_sync
node_sync -.->|"stores synced data"| node_data
node_data -.->|"reads account data"| node_supabase
node_data -->|"supplies performance"| node_assessments
node_assessments -.->|"forms recommendations"| node_intelligence
node_intelligence -->|"explains performance"| node_dashboard
node_intelligence -->|"suggests queued work"| node_calendar
node_queue_processor -->|"processes queue"| node_queue_store
node_calendar -->|"reviews queued work"| node_queue_store
node_operator -->|"scans campaign health"| node_campaigns
node_campaign_builder -->|"saves campaign draft"| node_drafts
node_operator -->|"reviews summaries"| node_reports

click node_auth "https://github.com/yengner/deepvisor/blob/main/src/app/(auth)/components/AuthForm.tsx"
click node_onboarding "https://github.com/yengner/deepvisor/blob/main/src/app/onboarding/components/OnboardingProvider.tsx"
click node_dashboard "https://github.com/yengner/deepvisor/blob/main/src/app/(root)/dashboard/components/DashboardClient.tsx"
click node_calendar "https://github.com/yengner/deepvisor/blob/main/src/app/(root)/calendar/CalendarClient.tsx"
click node_campaigns "https://github.com/yengner/deepvisor/blob/main/src/components/campaigns/CampaignDashboard.tsx"
click node_campaign_builder "https://github.com/yengner/deepvisor/blob/main/src/components/campaigns/create/platforms/meta/index.tsx"
click node_reports "https://github.com/yengner/deepvisor/blob/main/src/app/(root)/reports/components/ReportsClient.tsx"
click node_integrations_ui "https://github.com/yengner/deepvisor/blob/main/src/components/integrations/MetaIntegrationFlow.tsx"
click node_integration_service "https://github.com/yengner/deepvisor/blob/main/src/lib/server/integrations/service.ts"
click node_sync "https://github.com/yengner/deepvisor/blob/main/src/lib/server/sync/index.ts"
click node_data "https://github.com/yengner/deepvisor/tree/main/src/lib/server/data"
click node_assessments "https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/assessments/service.ts"
click node_intelligence "https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/service.ts"
click node_queue_processor "https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/calendarQueueProcessor.ts"
click node_queue_store "https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/repositories/calendarQueue.ts"
click node_drafts "https://github.com/yengner/deepvisor/blob/main/src/lib/server/campaigns/drafts.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_auth,node_onboarding,node_dashboard,node_calendar,node_campaigns,node_campaign_builder,node_reports toneBlue
class node_integrations_ui,node_integration_service,node_meta,node_sync toneAmber
class node_data,node_assessments,node_intelligence toneMint
class node_queue_processor,node_queue_store,node_drafts toneRose
class node_supabase,node_operator toneIndigo
```

## Components

### Product surfaces

- [Sign-in](https://github.com/yengner/deepvisor/blob/main/src/app/(auth)/components/AuthForm.tsx): `src/app/(auth)/components/AuthForm.tsx`
- [Business setup](https://github.com/yengner/deepvisor/blob/main/src/app/onboarding/components/OnboardingProvider.tsx): `src/app/onboarding/components/OnboardingProvider.tsx`
- [Dashboard](https://github.com/yengner/deepvisor/blob/main/src/app/(root)/dashboard/components/DashboardClient.tsx): `src/app/(root)/dashboard/components/DashboardClient.tsx`
- [Calendar](https://github.com/yengner/deepvisor/blob/main/src/app/(root)/calendar/CalendarClient.tsx): `src/app/(root)/calendar/CalendarClient.tsx`
- [Campaign workspace](https://github.com/yengner/deepvisor/blob/main/src/components/campaigns/CampaignDashboard.tsx): `src/components/campaigns/CampaignDashboard.tsx`
- [Campaign builder](https://github.com/yengner/deepvisor/blob/main/src/components/campaigns/create/platforms/meta/index.tsx): `src/components/campaigns/create/platforms/meta/index.tsx`
- [Reports](https://github.com/yengner/deepvisor/blob/main/src/app/(root)/reports/components/ReportsClient.tsx): `src/app/(root)/reports/components/ReportsClient.tsx`

### Account connection

- [Integration controls](https://github.com/yengner/deepvisor/blob/main/src/components/integrations/MetaIntegrationFlow.tsx): `src/components/integrations/MetaIntegrationFlow.tsx`
- [Integration service](https://github.com/yengner/deepvisor/blob/main/src/lib/server/integrations/service.ts): `src/lib/server/integrations/service.ts`
- **Meta Ads**
- [Account sync](https://github.com/yengner/deepvisor/blob/main/src/lib/server/sync/index.ts): `src/lib/server/sync/index.ts`

### Data and intelligence

- [Data access](https://github.com/yengner/deepvisor/tree/main/src/lib/server/data): `src/lib/server/data`
- [Performance assessment](https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/assessments/service.ts): `src/lib/server/intelligence/assessments/service.ts`
- [Account intelligence](https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/service.ts): `src/lib/server/intelligence/service.ts`

### Operator workflows

- [Queue processing](https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/calendarQueueProcessor.ts): `src/lib/server/intelligence/calendarQueueProcessor.ts`
- [Calendar queue](https://github.com/yengner/deepvisor/blob/main/src/lib/server/intelligence/repositories/calendarQueue.ts): `src/lib/server/intelligence/repositories/calendarQueue.ts`
- [Campaign drafts](https://github.com/yengner/deepvisor/blob/main/src/lib/server/campaigns/drafts.ts): `src/lib/server/campaigns/drafts.ts`

### Platform services

- **Supabase**

### Other components

- **Operator**

## Connections

- Operator → Sign-in: signs in (evidence: `README.md`)
- Operator → Business setup: sets up business (evidence: `README.md`)
- Operator → Integration controls: connects account (evidence: `README.md`)
- Integration controls → Integration service: manages connection
- Integration service → Meta Ads: validates and fetches (evidence: `src/lib/server/integrations/service.ts`)
- Integration service → Supabase: persists integration (evidence: `src/lib/server/integrations/service.ts`)
- Meta Ads → Account sync: provides account history (evidence: `README.md`)
- Account sync → Data access: stores synced data
- Data access → Supabase: reads account data
- Data access → Performance assessment: supplies performance (evidence: `src/lib/server/intelligence/assessments/service.ts`)
- Performance assessment → Account intelligence: forms recommendations
- Account intelligence → Dashboard: explains performance (evidence: `README.md`)
- Account intelligence → Calendar: suggests queued work (evidence: `README.md`)
- Queue processing → Calendar queue: processes queue (evidence: `src/app/api/calendar/queue/dev/route.ts`)
- Calendar → Calendar queue: reviews queued work (evidence: `README.md`)
- Operator → Campaign workspace: scans campaign health (evidence: `README.md`)
- Campaign builder → Campaign drafts: saves campaign draft
- Operator → Reports: reviews summaries (evidence: `README.md`)
