# abhi-2516/nexora---agentic-ai-app-generator architecture

> Architecture diagram of the GitHub repository abhi-2516/nexora---agentic-ai-app-generator, 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/abhi-2516/nexora---agentic-ai-app-generator
- Repository: https://github.com/abhi-2516/nexora---agentic-ai-app-generator

## Overview

NEXORA turns a natural-language prompt into a validated React project, streams results into a browser workspace, and persists project state and credit changes. The README also documents AI-assisted improvements, live preview/editing, project management, image attachments, and ZIP export. Generation and improvement routes are sampled; several UI, persistence, and ancillary capabilities are represented from the README and file tree, so their internal wiring is shown only where documented.

Main entry points: [`components/WorkspaceClient.tsx`](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/WorkspaceClient.tsx) (Workspace state), [`app/api/gen-ai-code/route.ts`](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/api/gen-ai-code/route.ts) (Generation route), [`app/api/improve/route.ts`](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/api/improve/route.ts) (Improvement route), [`lib/ai/index.ts`](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/index.ts) (Provider selector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_landing["Prompt landing<br/>[page.tsx]"]
  node_workspacepage["Workspace page<br/>[page.tsx]"]
  node_workspace["Workspace state"]
  node_chat["Chat panel<br/>[ChatPanel.tsx]"]
  node_code["Editor and preview<br/>[CodePanel.tsx]"]
  node_projectsui["Project browser<br/>[page.tsx]"]
  node_archive["ZIP export<br/>[CodePanel.tsx]"]
end

subgraph group_generation["AI generation"]
  node_generate["Generation route<br/>[route.ts]"]
  node_improve["Improvement route<br/>[route.ts]"]
  node_provider["Provider selector<br/>[index.ts]"]
  node_gemini["Gemini provider<br/>[gemini.ts]"]
  node_groq["Groq provider<br/>[groq.ts]"]
  node_openrouter["OpenRouter provider<br/>[openrouter.ts]"]
  node_parser["Response validator<br/>[ai-parser.ts]"]
end

subgraph group_account["Accounts and projects"]
  node_actions["Project actions<br/>[projects.ts]"]
  node_workspaceactions["Workspace actions<br/>[workspace.ts]"]
end

subgraph group_integrations["External services"]
  node_auth["Clerk identity"]
  node_security["Arcjet guard<br/>[arcjet.ts]"]
  node_database[("Workspace database<br/>[prisma.ts]")]
  node_ai_services["AI services"]
  node_cline["Cline agent"]
  node_npm["npm registry"]
  node_sandbox["Sandpack runtime"]
  node_storage[("Supabase image storage")]
end

node_user(("Builder"))

node_user -->|"enters prompt"| node_landing
node_landing -->|"opens workspace"| node_workspacepage
node_workspacepage -->|"renders"| node_workspace
node_workspace -->|"shows conversation"| node_chat
node_workspace -->|"shows files"| node_code
node_chat -->|"submits request"| node_workspace
node_workspace -->|"posts generation"| node_generate
node_generate -->|"checks identity"| node_auth
node_generate -->|"screens request"| node_security
node_generate -->|"checks credits and saves"| node_database
node_generate -->|"requests generation"| node_provider
node_provider -->|"selects provider"| node_gemini
node_provider -->|"selects provider"| node_groq
node_provider -->|"selects provider"| node_openrouter
node_gemini -->|"sends prompt"| node_ai_services
node_groq -->|"sends prompt"| node_ai_services
node_openrouter -->|"sends prompt"| node_ai_services
node_generate -->|"validates response"| node_parser
node_generate -->|"validates packages"| node_npm
node_generate -->|"streams project"| node_workspace
node_workspace -->|"posts improvement"| node_improve
node_improve -->|"checks identity"| node_auth
node_improve -->|"runs agent"| node_cline
node_improve -->|"saves files and credits"| node_database
node_improve -->|"streams updates"| node_workspace
node_code -->|"runs project"| node_sandbox
node_code -->|"exports project"| node_archive
node_user -->|"browses projects"| node_projectsui
node_projectsui -->|"requests project operations"| node_actions
node_actions -->|"reads and writes"| node_database
node_workspaceactions -->|"reads and writes"| node_database
node_user -->|"signs in"| node_auth
node_workspace -.->|"attaches images"| node_storage

click node_landing "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/page.tsx"
click node_workspacepage "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/(main)/workspace/page.tsx"
click node_workspace "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/WorkspaceClient.tsx"
click node_chat "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/ChatPanel.tsx"
click node_code "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/CodePanel.tsx"
click node_projectsui "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/(main)/projects/page.tsx"
click node_generate "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/api/gen-ai-code/route.ts"
click node_improve "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/api/improve/route.ts"
click node_provider "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/index.ts"
click node_gemini "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/gemini.ts"
click node_groq "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/groq.ts"
click node_openrouter "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/openrouter.ts"
click node_parser "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai-parser.ts"
click node_actions "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/actions/projects.ts"
click node_workspaceactions "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/actions/workspace.ts"
click node_security "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/arcjet.ts"
click node_database "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/prisma.ts"
click node_archive "https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/CodePanel.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_workspacepage,node_workspace,node_chat,node_code,node_projectsui,node_archive toneBlue
class node_generate,node_improve,node_provider,node_gemini,node_groq,node_openrouter,node_parser toneAmber
class node_actions,node_workspaceactions toneMint
class node_auth,node_security,node_database,node_ai_services,node_cline,node_npm,node_sandbox,node_storage toneRose
class node_user toneIndigo
```

## Components

### User experience

- [Prompt landing](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/page.tsx): `app/page.tsx`
- [Workspace page](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/(main)/workspace/page.tsx): `app/(main)/workspace/page.tsx`
- [Workspace state](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/WorkspaceClient.tsx): `components/WorkspaceClient.tsx`
- [Chat panel](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/ChatPanel.tsx): `components/ChatPanel.tsx`
- [Editor and preview](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/CodePanel.tsx): `components/CodePanel.tsx`
- [Project browser](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/(main)/projects/page.tsx): `app/(main)/projects/page.tsx`
- [ZIP export](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/components/CodePanel.tsx): `components/CodePanel.tsx`

### AI generation

- [Generation route](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/api/gen-ai-code/route.ts): `app/api/gen-ai-code/route.ts`
- [Improvement route](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/app/api/improve/route.ts): `app/api/improve/route.ts`
- [Provider selector](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/index.ts): `lib/ai/index.ts`
- [Gemini provider](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/gemini.ts): `lib/ai/gemini.ts`
- [Groq provider](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/groq.ts): `lib/ai/groq.ts`
- [OpenRouter provider](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai/openrouter.ts): `lib/ai/openrouter.ts`
- [Response validator](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/ai-parser.ts): `lib/ai-parser.ts`

### Accounts and projects

- [Project actions](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/actions/projects.ts): `actions/projects.ts`
- [Workspace actions](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/actions/workspace.ts): `actions/workspace.ts`

### External services

- **Clerk identity**
- [Arcjet guard](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/arcjet.ts): `lib/arcjet.ts`
- [Workspace database](https://github.com/abhi-2516/nexora---agentic-ai-app-generator/blob/main/lib/prisma.ts): `lib/prisma.ts`
- **AI services**
- **Cline agent**
- **npm registry**
- **Sandpack runtime**
- **Supabase image storage**

### Other components

- **Builder**

## Connections

- Builder → Prompt landing: enters prompt
- Prompt landing → Workspace page: opens workspace
- Workspace page → Workspace state: renders
- Workspace state → Chat panel: shows conversation
- Workspace state → Editor and preview: shows files
- Chat panel → Workspace state: submits request
- Workspace state → Generation route: posts generation
- Generation route → Clerk identity: checks identity
- Generation route → Arcjet guard: screens request
- Generation route → Workspace database: checks credits and saves
- Generation route → Provider selector: requests generation
- Provider selector → Gemini provider: selects provider
- Provider selector → Groq provider: selects provider
- Provider selector → OpenRouter provider: selects provider
- Gemini provider → AI services: sends prompt
- Groq provider → AI services: sends prompt
- OpenRouter provider → AI services: sends prompt
- Generation route → Response validator: validates response
- Generation route → npm registry: validates packages
- Generation route → Workspace state: streams project
- Workspace state → Improvement route: posts improvement
- Improvement route → Clerk identity: checks identity
- Improvement route → Cline agent: runs agent
- Improvement route → Workspace database: saves files and credits
- Improvement route → Workspace state: streams updates
- Editor and preview → Sandpack runtime: runs project
- Editor and preview → ZIP export: exports project
- Builder → Project browser: browses projects
- Project browser → Project actions: requests project operations
- Project actions → Workspace database: reads and writes
- Workspace actions → Workspace database: reads and writes
- Builder → Clerk identity: signs in
- Workspace state → Supabase image storage: attaches images
