# abhijeetb0/inkloom architecture

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

- Interactive diagram: https://gitdiagram.com/abhijeetb0/inkloom
- Repository: https://github.com/abhijeetb0/inkloom

## Overview

Inkloom is an early-access platform for specialized logo-design models; generation is explicitly not live. The running workflow is account creation and authentication, access-code redemption, and reserved credits, with user and admin account-management surfaces. The documented model workflow—brand analysis, typography, symbol construction, and composition—is a future product capability, not an implemented generation pipeline. The Worker and selected service interactions are supported by sampled source; links among unsampled route handlers and services are omitted where wiring is uncertain.

Main entry points: [`apps/web/workers/app.ts`](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/workers/app.ts) (Cloudflare Worker), [`apps/web/app/routes/marketing/home.tsx`](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/home.tsx) (Marketing pages), [`packages/api/src/index.ts`](https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/index.ts) (API application), [`packages/db/src/client.ts`](https://github.com/abhijeetb0/inkloom/blob/master/packages/db/src/client.ts) (Postgres database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Web experience"]
  node_worker["Cloudflare Worker<br/>[app.ts]"]
  node_marketing["Marketing pages<br/>[home.tsx]"]
  node_auth_ui["Auth pages<br/>[signup.tsx]"]
  node_account_ui["Account dashboard<br/>[home.tsx]"]
  node_admin_ui["Operations console<br/>[overview.tsx]"]
end

subgraph group_api["API and access"]
  node_api_app["API application<br/>[index.ts]"]
  node_auth_routes["Auth endpoints<br/>[auth.ts]"]
  node_credit_routes["Credit endpoints<br/>[credits.ts]"]
  node_admin_routes["Admin endpoints<br/>[admin.ts]"]
end

subgraph group_services["Core services"]
  node_auth_core["Authentication<br/>[auth.ts]"]
  node_access_codes["Code redemption<br/>[redemption.ts]"]
  node_credit_ledger["Credit ledger<br/>[ledger.ts]"]
  node_audit["Audit trail<br/>[audit.ts]"]
  node_email["Email delivery<br/>[transport.ts]"]
  node_settings["Settings and flags<br/>[service.ts]"]
  node_telemetry["Telemetry<br/>[collector.ts]"]
end

subgraph group_state["Persistent state"]
  node_database[("Postgres database<br/>[client.ts]")]
  node_auth_schema["Account records<br/>[auth.ts]"]
end

subgraph group_models["Model roadmap"]
  node_model_analysis["Brand analysis<br/>[how-it-works.tsx]"]
  node_model_type["Typography<br/>[how-it-works.tsx]"]
  node_model_symbol["Symbol construction<br/>[how-it-works.tsx]"]
  node_model_composition["Composition<br/>[how-it-works.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"requests pages or API"| node_worker
node_worker -->|"renders routes"| node_marketing
node_worker -->|"renders routes"| node_auth_ui
node_worker -->|"renders routes"| node_account_ui
node_worker -->|"renders routes"| node_admin_ui
node_worker -->|"dispatches API requests"| node_api_app
node_worker -->|"creates database client"| node_database
node_worker -->|"records usage"| node_telemetry
node_api_app -->|"routes requests"| node_auth_routes
node_api_app -->|"routes requests"| node_credit_routes
node_api_app -->|"routes requests"| node_admin_routes
node_auth_core -->|"persists auth data"| node_database
node_auth_schema -->|"defines tables"| node_database
node_marketing -.->|"describes roadmap"| node_model_analysis
node_marketing -.->|"describes roadmap"| node_model_type
node_marketing -.->|"describes roadmap"| node_model_symbol
node_marketing -.->|"describes roadmap"| node_model_composition

click node_worker "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/workers/app.ts"
click node_marketing "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/home.tsx"
click node_auth_ui "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/auth/signup.tsx"
click node_account_ui "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/app/home.tsx"
click node_admin_ui "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/admin/overview.tsx"
click node_api_app "https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/index.ts"
click node_auth_routes "https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/routes/auth.ts"
click node_credit_routes "https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/routes/credits.ts"
click node_admin_routes "https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/routes/admin.ts"
click node_auth_core "https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/auth/auth.ts"
click node_access_codes "https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/access-codes/redemption.ts"
click node_credit_ledger "https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/credits/ledger.ts"
click node_audit "https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/audit/audit.ts"
click node_email "https://github.com/abhijeetb0/inkloom/blob/master/packages/email/src/transport.ts"
click node_settings "https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/settings/service.ts"
click node_telemetry "https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/telemetry/collector.ts"
click node_database "https://github.com/abhijeetb0/inkloom/blob/master/packages/db/src/client.ts"
click node_auth_schema "https://github.com/abhijeetb0/inkloom/blob/master/packages/db/src/schema/auth.ts"
click node_model_analysis "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx"
click node_model_type "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx"
click node_model_symbol "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx"
click node_model_composition "https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.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_worker,node_marketing,node_auth_ui,node_account_ui,node_admin_ui toneBlue
class node_api_app,node_auth_routes,node_credit_routes,node_admin_routes toneAmber
class node_auth_core,node_access_codes,node_credit_ledger,node_audit,node_email,node_settings,node_telemetry toneMint
class node_database,node_auth_schema toneRose
class node_model_analysis,node_model_type,node_model_symbol,node_model_composition,node_visitor toneIndigo
```

## Components

### Web experience

- [Cloudflare Worker](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/workers/app.ts): `apps/web/workers/app.ts`
- [Marketing pages](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/home.tsx): `apps/web/app/routes/marketing/home.tsx`
- [Auth pages](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/auth/signup.tsx): `apps/web/app/routes/auth/signup.tsx`
- [Account dashboard](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/app/home.tsx): `apps/web/app/routes/app/home.tsx`
- [Operations console](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/admin/overview.tsx): `apps/web/app/routes/admin/overview.tsx`

### API and access

- [API application](https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/index.ts): `packages/api/src/index.ts`
- [Auth endpoints](https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/routes/auth.ts): `packages/api/src/routes/auth.ts`
- [Credit endpoints](https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/routes/credits.ts): `packages/api/src/routes/credits.ts`
- [Admin endpoints](https://github.com/abhijeetb0/inkloom/blob/master/packages/api/src/routes/admin.ts): `packages/api/src/routes/admin.ts`

### Core services

- [Authentication](https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/auth/auth.ts): `packages/core/src/auth/auth.ts`
- [Code redemption](https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/access-codes/redemption.ts): `packages/core/src/access-codes/redemption.ts`
- [Credit ledger](https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/credits/ledger.ts): `packages/core/src/credits/ledger.ts`
- [Audit trail](https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/audit/audit.ts): `packages/core/src/audit/audit.ts`
- [Email delivery](https://github.com/abhijeetb0/inkloom/blob/master/packages/email/src/transport.ts): `packages/email/src/transport.ts`
- [Settings and flags](https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/settings/service.ts): `packages/core/src/settings/service.ts`
- [Telemetry](https://github.com/abhijeetb0/inkloom/blob/master/packages/core/src/telemetry/collector.ts): `packages/core/src/telemetry/collector.ts`

### Persistent state

- [Postgres database](https://github.com/abhijeetb0/inkloom/blob/master/packages/db/src/client.ts): `packages/db/src/client.ts`
- [Account records](https://github.com/abhijeetb0/inkloom/blob/master/packages/db/src/schema/auth.ts): `packages/db/src/schema/auth.ts`

### Model roadmap

- [Brand analysis](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx): `apps/web/app/routes/marketing/how-it-works.tsx`
- [Typography](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx): `apps/web/app/routes/marketing/how-it-works.tsx`
- [Symbol construction](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx): `apps/web/app/routes/marketing/how-it-works.tsx`
- [Composition](https://github.com/abhijeetb0/inkloom/blob/master/apps/web/app/routes/marketing/how-it-works.tsx): `apps/web/app/routes/marketing/how-it-works.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Cloudflare Worker: requests pages or API
- Cloudflare Worker → Marketing pages: renders routes
- Cloudflare Worker → Auth pages: renders routes
- Cloudflare Worker → Account dashboard: renders routes
- Cloudflare Worker → Operations console: renders routes
- Cloudflare Worker → API application: dispatches API requests
- Cloudflare Worker → Postgres database: creates database client
- Cloudflare Worker → Telemetry: records usage
- API application → Auth endpoints: routes requests
- API application → Credit endpoints: routes requests
- API application → Admin endpoints: routes requests
- Authentication → Postgres database: persists auth data
- Account records → Postgres database: defines tables
- Marketing pages → Brand analysis: describes roadmap
- Marketing pages → Typography: describes roadmap
- Marketing pages → Symbol construction: describes roadmap
- Marketing pages → Composition: describes roadmap
