> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equa.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Repository Guide

> What each repository does and how they connect

# Repository Guide

> **Last Verified:** 2026-05-03

The Equa platform is split across several repositories, each handling a distinct concern. This guide explains what each repo does, its tech stack, and how they connect at runtime.

## Repository Overview

| Repository               | GitHub                                   | Purpose                             | Stack                                    | Package Mgr       | Dev Port                 |
| ------------------------ | ---------------------------------------- | ----------------------------------- | ---------------------------------------- | ----------------- | ------------------------ |
| equa-web                 | `EQUAStart/equa-web`                     | Frontend application                | React 16, Webpack 4, TypeScript 3.7      | Yarn              | 8080                     |
| equa-server              | `EQUAStart/equa-server`                  | Backend API                         | Express 4.16, TypeORM 0.2.24, PostgreSQL | Yarn (workspaces) | 3000                     |
| equabot                  | `EQUAStart/equabot`                      | AI agent gateway                    | Node.js, TypeScript (ESM), multi-channel | pnpm 10           | 18789                    |
| equa-patternlib-nextjs   | `EQUAStart/equa-patternlib-nextjs`       | Design system / component library   | Next.js 14, Storybook 8.4, React 18      | npm               | 3333 / 6006              |
| command-center-so        | `EQUAStart/equanaut-command-center-main` | Full-screen Equanaut Command Center | Next.js 16, Tailwind CSS 4, React 19     | npm               | 3001 (`/command-center`) |
| equa-desktop-app-mac-ios | --                                       | Desktop and mobile apps (planned)   | TBD                                      | TBD               | --                       |

## How Repos Connect at Runtime

```mermaid theme={null}
graph TD
    Browser["Browser (User)"]
    EquaWeb["equa-web :8080"]
    EquaServer["equa-server :3000"]
    PostgreSQL["PostgreSQL :5432"]
    EquabotGW["equabot-gateway :18789"]
    Storybook["Storybook :6006"]
    PatternLib["equa-patternlib"]
    External["External APIs"]

    Browser --> EquaWeb
    EquaWeb -->|"/api/* proxy"| EquaServer
    EquaServer --> PostgreSQL
    EquaServer --> External
    EquaWeb -.->|"npm dependency"| PatternLib
    EquabotGW -->|"WebSocket"| EquaServer
    EquabotGW --> External
    Browser --> Storybook

    External --- GDrive["Google Drive"]
    External --- MSGraph["Microsoft Graph"]
    External --- Chargify["Chargify"]
    External --- S3["AWS S3 / GCS"]
```

**Key connections:**

* **equa-web** proxies all `/api/*` requests to **equa-server** via webpack-dev-server (configured in webpack config, default target `http://localhost:3000`)
* **equa-web** imports **equa-patternlib** as an npm dependency from GitHub: `"equa-patternlib": "github:EQUAStart/equa-patternlib-nextjs#master"` (Source: `equa-web/package.json` line 24)
* **equabot-gateway** communicates with equa-server and external AI/messaging services via WebSocket and REST
* **Storybook** runs independently as a visual component playground

## Per-Repository Details

### equa-web

Frontend single-page application for the Equa equity management platform.

```
equa-web/
├── src/
│   ├── modules/          # 24 feature modules
│   ├── shared/           # Shared components, helpers, styles
│   ├── app/              # App-level components and routing
│   ├── logic/            # Business logic and Redux (legacy)
│   ├── service/          # API service layer
│   ├── assets/           # Images, fonts
│   └── styles/           # Global styles and themes
├── lab/                  # Entry points (main-prod.ts)
├── e2e/                  # Playwright E2E tests
├── config/               # Webpack and app configuration
└── tslint.json           # TSLint config (deprecated)
```

**Feature modules** (24 under `src/modules/`): actions, admin, agreements, auth, captable, convertibles, documents, equanaut, esop, google-drive, guest, hh-finance, landing, organization, organization-dashboard, payments, profile, referrals, reports, roles, subscriptions, team-members, user-dashboard, welcome

Source: `equa-web/src/modules/` directory listing

**Path aliases** (from `equa-web/tsconfig.json`):

| Alias           | Maps To                   |
| --------------- | ------------------------- |
| `@src/*`        | `src/*`                   |
| `@modules/*`    | `src/modules/*`           |
| `@shared/*`     | `src/shared/*`            |
| `@components/*` | `src/shared/components/*` |
| `@helpers/*`    | `src/shared/helpers/*`    |
| `@styles/*`     | `src/shared/styles/*`     |
| `@image/*`      | `src/assets/image/*`      |
| `@config/*`     | `config/*`                |
| `@logic`        | `src/logic/`              |

### equa-server

Backend API server using a workspace-based modular monolith architecture.

```
equa-server/
├── modules/              # 20 workspace packages
│   ├── api/              # Main API entry point, endpoints, handlers
│   ├── auth/             # Authentication and authorization
│   ├── persistence/      # Database schema and queries (TypeORM)
│   ├── captable/         # Cap table business logic
│   ├── organizations/    # Organization management
│   ├── billing/          # Chargify integration
│   ├── file-storage/     # S3/GCS file management
│   ├── notifications/    # Email sending (SES, SMTP, Mandrill)
│   ├── agent/            # AI assistant (Equanaut) with Claude
│   ├── doc-gen/          # Document generation
│   ├── data-room/        # Data room functionality
│   ├── google-drive/     # Google Drive integration
│   ├── microsoft/        # Microsoft auth and files
│   ├── activity/         # Activity tracking
│   ├── admin/            # Admin functionality
│   ├── referral/         # Referral system
│   ├── common/           # Shared utilities, logging (Winston)
│   ├── api-helper/       # HTTP handler utilities
│   ├── raven/            # Raven addresses
│   └── wallet/           # Wallet functionality
├── docker-compose.yml    # PostgreSQL container for development
├── Dockerfile            # Production multi-stage build
├── ecosystem.config.js   # PM2 production config
└── cloudbuild.yaml       # Legacy Google Cloud Build / Cloud Run deployment path
```

Source: `equa-server/modules/` directory listing; `equa-server/package.json` workspaces config

### equabot (equabot-gateway)

AI agent infrastructure supporting multi-channel messaging, browser automation, and tool execution.

```
equabot/
├── src/                  # Core TypeScript source (ESM)
│   ├── agents/           # Agent framework and tools
│   ├── browser/          # Browser automation
│   ├── gateway/          # Gateway server and protocol
│   ├── cli/              # CLI wiring
│   └── commands/         # CLI commands
├── ui/                   # Lit-based web UI components
├── extensions/           # Channel plugins (Google Chat, etc.)
├── skills/               # Agent skill definitions
├── apps/                 # Native applications
│   ├── ios/              # iOS app
│   ├── android/          # Android app
│   └── macos/            # macOS menubar app
├── docs/                 # Documentation (11ty-based)
└── scripts/              # Build and utility scripts
```

**Runtime:** Node 22+ required (`engines.node: ">=22.12.0"` in `package.json`). Uses pnpm as package manager.

Source: `equabot-gateway/package.json`

### equa-patternlib-nextjs

Shared React component library and design system with Storybook for visual documentation.

```
equa-patternlib-nextjs/
├── src/
│   ├── components/       # React components
│   ├── tokens/           # Design tokens
│   └── index.ts          # Package exports
├── stories/              # Storybook stories
├── .storybook/           # Storybook configuration
└── vitest.config.js      # Test config (jsdom)
```

Consumed by equa-web as a GitHub dependency. Storybook runs on port 6006, Next.js dev server on port 3333.

Source: `equa-patternlib-nextjs/package.json`

### command-center-so

Internal operations dashboard for monitoring and managing the Equa platform and equabot infrastructure.

```
command-center-so/
├── src/
│   ├── app/              # Next.js App Router pages and API routes
│   ├── components/       # React components
│   └── lib/              # Shared utilities
├── e2e/                  # Playwright tests
├── test/                 # Unit tests
└── .specify/
    ├── specs/            # Feature specs ({id}-{slug}/ per spec)
    ├── templates/        # Artifact templates
    ├── memory/           # Constitution, persistent context
    └── queue/            # Portfolio queue, session briefs
```

Uses Next.js 16 with App Router, Tailwind CSS 4, and React 19. See [Spequa Workflow](/onboarding/spequa-workflow) for full details on the spec directory and pipeline.

Source: `command-center-so/package.json`

### equa-desktop-app-mac-ios

Planned repository for native desktop (macOS) and mobile (iOS) apps. Currently **empty and not initialized** -- no source code, no package.json, no project files.

## Inter-Repository Dependencies

| Dependency        | From           | To                     | Mechanism                                                                     |
| ----------------- | -------------- | ---------------------- | ----------------------------------------------------------------------------- |
| Component library | equa-web       | equa-patternlib-nextjs | npm dependency from GitHub (`github:EQUAStart/equa-patternlib-nextjs#master`) |
| API proxy         | equa-web (dev) | equa-server            | webpack-dev-server proxy (`/api/*` -> `localhost:3000`)                       |
| AI integration    | equa-server    | equabot-gateway        | WebSocket and REST calls                                                      |
| Database          | equa-server    | PostgreSQL             | TypeORM connection via `docker-compose.yml`                                   |

## Branching Conventions

Branching patterns vary across repositories. There is no single enforced standard.

| Repository             | Primary Branch | Observed Patterns                                              | Protected Branches |
| ---------------------- | -------------- | -------------------------------------------------------------- | ------------------ |
| equa-web               | `main`         | `feat/**`, `fix/**`, `docs/**`, `chore/**`, `ci/**`, `phase-*` | `main`             |
| equa-server            | `staging`      | `staging`, legacy `prod-deploy` CI trigger                     | `main`, `staging`  |
| equabot-gateway        | `main`         | `fix/*`, `feat/*`, `issue-*`                                   | `main`             |
| equa-patternlib-nextjs | `master`       | `staging`, `master`                                            | `master`           |
| command-center-so      | `main`         | `issue-*`, `fix/*`                                             | `main`             |

Source: git status and GitHub Actions workflow trigger configurations across repos

See [PR and Commit Workflow](/onboarding/pr-and-commit-workflow) for more detail on commit conventions and merge strategies.
