# The repositories

The org is five repositories. One is a monorepo holding the backend and the
mobile app; three are Next.js web surfaces; one is this documentation site.

```mermaid
graph LR
    subgraph "Drape-AI-LLC"
        Mono["Drape-<br/>backend + mobile app"]
        Mkt["Drape-Marketing"]
        Brand["Drape-brand"]
        Admin["Drape-admin-v1"]
        Docs["Drape-Docs<br/>(this site)"]
    end
    Mono -->|Render| RenderSvc["Mongo FastAPI"]
    Mono -->|ECS Fargate| EcsSvc["Postgres API api.drape.to"]
    Mono -->|EAS| Stores["iOS / Android builds"]
    Mkt -->|AWS Amplify| WWW["www.drape.to"]
    Brand -->|AWS Amplify| BrandDom["brand.drape.to"]
    Admin -->|AWS Amplify| AdminDom["admin.drape.to"]
    Docs -->|AWS Amplify| DocsDom["docs.drape.to"]
```

## At a glance

| Repo | What it owns | Stack | Deploys to |
|---|---|---|---|
| **`Drape-`** | Two FastAPI backends **and** the Expo mobile app (monorepo) | Python / FastAPI · Expo / React Native · Mongo + Postgres | `backend/` → **Render** (Mongo, mobile) · `backend-postgres/` → **ECS** cluster `drape` (`develop` → `drape-dev`, prod `workflow_dispatch` → `drape-prod`) · app → EAS/TestFlight |
| **`Drape-Marketing`** | The public marketing site | Next.js 16 (static export), Tailwind v4 | AWS Amplify (`drape-ai-llc/drape-marketing`) → www.drape.to |
| **`Drape-brand`** | The desktop brand/seller portal | Next.js 16 (static export), Tailwind v4 | AWS Amplify (`drape-ai-llc/drape-brand`) → brand.drape.to + `*.drape.to` |
| **`Drape-admin-v1`** | The internal admin/ops dashboard | Next.js 16 (static export), Tailwind v4 | AWS Amplify (`drape-ai-llc/drape-admin-v1`) → admin.drape.to |
| **`Drape-Docs`** | This documentation site | PokeDocs (Docusaurus) | AWS Amplify (`drape-ai-llc/drape-docs`) → **docs.drape.to** |

## The monorepo — `Drape-`

`Drape-` is the heart of the system and the largest repo (~585 MB, inflated by
committed build artifacts and visual-audit screenshots). It contains **two
backends** and the mobile app:

- **`backend/`** — a single FastAPI `server.py` (~8,900 lines) plus a worker and a
  fleet of cron agents. MongoDB, Upstash Redis, Supabase Storage, Stripe Connect,
  Fashn.ai, and fal.ai. Deploys to **Render**. This is documented in depth
  under [Architecture → Backend](../architecture/backend.md).
- **`backend-postgres/`** — modular FastAPI + PostgreSQL. Deploys to **ECS
  Fargate** (cluster `drape`, ECR `drape-backend-postgres`): `develop`
  auto-deploys service `drape-dev`; production is `workflow_dispatch` to
  `drape-prod`. See [Infrastructure](../architecture/infrastructure.md) and the
  [AWS system map](../architecture/aws-system-map.md).
- **`frontend/`** — the Expo Router mobile app (the consumer try-on experience and
  the mobile brand portal). Documented under
  [Architecture → Mobile app](../architecture/frontend.md).

Amplify Git connections for the web repos are the **org**
(`github.com/drape-ai-llc/...`), not `KCB1099/*`.

## The three web surfaces

All three are Next.js 16 App Router projects using **static export**
(`output: "export"`) and **Tailwind CSS v4**, deployed on **AWS Amplify** as
**`WEB_COMPUTE`** apps (not a pure static bucket), and all consume the Postgres
FastAPI backend at `api.drape.to`. The brand and admin portals
share Drape's design tokens (see
[Design system](../architecture/design-system.md)).

- **`Drape-Marketing`** → the consumer funnel and brand pitch. See
  [Marketing funnel](../product/marketing-funnel.md).
- **`Drape-brand`** → the desktop counterpart to the mobile brand portal, where
  stores manage catalog, orders, analytics, billing, and their storefront.
- **`Drape-admin-v1`** → internal ops: platform stats, queue health, store and
  product management. It replaces the old in-app `app/admin/*` screens.

Deep dives on all three are in
[Architecture → Web surfaces](../architecture/web-surfaces.md).

:::note[Two brand portals, one backend]
There is a **mobile** brand portal (in `Drape-/frontend`) and a **desktop** brand
portal (`Drape-brand`). They are parallel front-ends over the same store-admin API
— not a duplication bug. Pick the surface by device, not by capability.
:::
