# lexian-6/letrigen-my-saas-ai-platform architecture

> Architecture diagram of the GitHub repository lexian-6/letrigen-my-saas-ai-platform, 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/lexian-6/letrigen-my-saas-ai-platform
- Repository: https://github.com/lexian-6/letrigen-my-saas-ai-platform

## Overview

Letrigen is a web-based AI generation SaaS: users enter through authentication and dashboard tools, submit prompts for conversation, code, image, video, or music generation, and receive model output. Generation endpoints enforce free-use limits and subscription access; billing supports subscription checkout, portal management, and webhook-driven subscription records. The tree supports the feature areas, but UI-to-endpoint wiring and unsampled helpers’ internals were not verified, so those connections are omitted or shown only where sampled source establishes them.

Main entry points: [`ai-saas/lib/api-limit.ts`](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/api-limit.ts) (Free-use limits), [`ai-saas/lib/subscription.ts`](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/subscription.ts) (Subscription check), [`ai-saas/lib/prismadb.ts`](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/prismadb.ts) (Prisma database), [`ai-saas/app/api/conversation/route.ts`](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/conversation/route.ts) (Conversation API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Web experience"]
  node_authpages["Sign-in and sign-up"]
  node_dashboard["Dashboard tools"]
  node_sidebar["Tool navigation<br/>[sidebar.tsx]"]
end

subgraph group_generation["AI generation"]
  node_convo["Conversation API<br/>[route.ts]"]
  node_code["Code API<br/>[route.ts]"]
  node_image["Image API<br/>[route.ts]"]
  node_video["Video API<br/>[route.ts]"]
  node_music["Music API<br/>[route.ts]"]
end

subgraph group_entitlements["Usage and access"]
  node_limits["Free-use limits<br/>[api-limit.ts]"]
  node_subscriptioncheck["Subscription check<br/>[subscription.ts]"]
  node_database[("Prisma database<br/>[prismadb.ts]")]
end

subgraph group_billing["Subscriptions"]
  node_billingapi["Billing API<br/>[route.ts]"]
  node_webhook["Billing webhook<br/>[route.ts]"]
  node_stripe{{"Stripe<br/>[stripe.ts]"}}
end

node_user(("User"))
node_openai{{"OpenAI"}}
node_replicate{{"Replicate"}}
node_clerk{{"Clerk identity"}}

node_user -->|"signs in"| node_authpages
node_user -->|"uses tools"| node_dashboard
node_dashboard -->|"renders navigation"| node_sidebar
node_convo -->|"requests completion"| node_openai
node_code -->|"requests completion"| node_openai
node_image -->|"requests images"| node_openai
node_video -->|"runs model"| node_replicate
node_music -->|"runs model"| node_replicate
node_convo -->|"checks and increments"| node_limits
node_code -->|"checks and increments"| node_limits
node_image -->|"checks and increments"| node_limits
node_video -->|"checks and increments"| node_limits
node_music -->|"checks and increments"| node_limits
node_convo -->|"checks access"| node_subscriptioncheck
node_code -->|"checks access"| node_subscriptioncheck
node_image -->|"checks access"| node_subscriptioncheck
node_video -->|"checks access"| node_subscriptioncheck
node_music -->|"checks access"| node_subscriptioncheck
node_limits -->|"reads and writes"| node_database
node_subscriptioncheck -->|"checks records"| node_database
node_billingapi -->|"reads subscription"| node_database
node_billingapi -->|"creates sessions"| node_stripe
node_webhook -->|"verifies and retrieves"| node_stripe
node_webhook -->|"creates or updates"| node_database
node_stripe -->|"sends events"| node_webhook
node_authpages -->|"authenticates"| node_clerk

click node_authpages "https://github.com/lexian-6/letrigen-my-saas-ai-platform/tree/main/ai-saas/app/(auth)/(routes)"
click node_dashboard "https://github.com/lexian-6/letrigen-my-saas-ai-platform/tree/main/ai-saas/app/(dashboard)/(routes)"
click node_sidebar "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/components/sidebar.tsx"
click node_convo "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/conversation/route.ts"
click node_code "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/code/route.ts"
click node_image "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/image/route.ts"
click node_video "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/video/route.ts"
click node_music "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/music/route.ts"
click node_limits "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/api-limit.ts"
click node_subscriptioncheck "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/subscription.ts"
click node_database "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/prismadb.ts"
click node_billingapi "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/stripe/route.ts"
click node_webhook "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/webhook/route.ts"
click node_stripe "https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/stripe.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_authpages,node_dashboard,node_sidebar,node_user toneBlue
class node_convo,node_code,node_image,node_video,node_music toneAmber
class node_limits,node_subscriptioncheck,node_database toneMint
class node_billingapi,node_webhook,node_stripe toneRose
class node_openai,node_replicate,node_clerk toneIndigo
```

## Components

### Web experience

- [Sign-in and sign-up](https://github.com/lexian-6/letrigen-my-saas-ai-platform/tree/main/ai-saas/app/(auth)/(routes)): `ai-saas/app/(auth)/(routes)`
- [Dashboard tools](https://github.com/lexian-6/letrigen-my-saas-ai-platform/tree/main/ai-saas/app/(dashboard)/(routes)): `ai-saas/app/(dashboard)/(routes)`
- [Tool navigation](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/components/sidebar.tsx): `ai-saas/components/sidebar.tsx`

### AI generation

- [Conversation API](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/conversation/route.ts): `ai-saas/app/api/conversation/route.ts`
- [Code API](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/code/route.ts): `ai-saas/app/api/code/route.ts`
- [Image API](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/image/route.ts): `ai-saas/app/api/image/route.ts`
- [Video API](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/video/route.ts): `ai-saas/app/api/video/route.ts`
- [Music API](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/music/route.ts): `ai-saas/app/api/music/route.ts`

### Usage and access

- [Free-use limits](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/api-limit.ts): `ai-saas/lib/api-limit.ts`
- [Subscription check](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/subscription.ts): `ai-saas/lib/subscription.ts`
- [Prisma database](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/prismadb.ts): `ai-saas/lib/prismadb.ts`

### Subscriptions

- [Billing API](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/stripe/route.ts): `ai-saas/app/api/stripe/route.ts`
- [Billing webhook](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/app/api/webhook/route.ts): `ai-saas/app/api/webhook/route.ts`
- [Stripe](https://github.com/lexian-6/letrigen-my-saas-ai-platform/blob/main/ai-saas/lib/stripe.ts): `ai-saas/lib/stripe.ts`

### Other components

- **User**
- **OpenAI**
- **Replicate**
- **Clerk identity**

## Connections

- User → Sign-in and sign-up: signs in
- User → Dashboard tools: uses tools
- Dashboard tools → Tool navigation: renders navigation
- Conversation API → OpenAI: requests completion
- Code API → OpenAI: requests completion
- Image API → OpenAI: requests images
- Video API → Replicate: runs model
- Music API → Replicate: runs model
- Conversation API → Free-use limits: checks and increments
- Code API → Free-use limits: checks and increments
- Image API → Free-use limits: checks and increments
- Video API → Free-use limits: checks and increments
- Music API → Free-use limits: checks and increments
- Conversation API → Subscription check: checks access
- Code API → Subscription check: checks access
- Image API → Subscription check: checks access
- Video API → Subscription check: checks access
- Music API → Subscription check: checks access
- Free-use limits → Prisma database: reads and writes
- Subscription check → Prisma database: checks records
- Billing API → Prisma database: reads subscription
- Billing API → Stripe: creates sessions
- Billing webhook → Stripe: verifies and retrieves
- Billing webhook → Prisma database: creates or updates
- Stripe → Billing webhook: sends events
- Sign-in and sign-up → Clerk identity: authenticates
