Skip to main content
Winnerr CRM is built as a modern monorepo using pnpm workspaces and Turborepo for efficient development, testing, and deployment. This architecture enables code sharing, consistent tooling, and streamlined development workflows across all applications and packages.

Repository Overview

winnerr-works/
├── 📱 apps/                    # Application layers
├── 📦 packages/               # Shared packages and libraries  
├── 🛠️ dev-docs/               # Development documentation
├── 🔧 .github/                # GitHub workflows and templates
├── 📋 package.json            # Root workspace configuration
├── 🚀 turbo.json             # Turborepo configuration
└── 🔒 pnpm-workspace.yaml    # Workspace definition

Applications (apps/)

Main CRM Application (apps/app/)

The core real estate CRM interface built with Next.js 15.
apps/app/
├── app/                       # Next.js App Router
│   ├── (authenticated)/      # Protected routes
│   │   ├── dashboard/         # Main dashboard
│   │   ├── people/           # Contact management
│   │   ├── deals/            # Deal pipeline
│   │   ├── properties/       # Property management
│   │   ├── phone/            # Communication hub
│   │   └── ai/               # AI features
│   ├── (unauthenticated)/    # Public routes
│   │   ├── sign-in/          # Authentication
│   │   └── sign-up/          # Registration
│   └── organization-setup/   # Organization onboarding
├── components/               # React components
│   ├── ai/                   # AI-specific components
│   ├── voice/                # Voice search components
│   └── ui/                   # UI components
├── hooks/                    # Custom React hooks
├── lib/                      # Utility functions
└── public/                   # Static assets
Key Features:
  • Next.js 15 App Router with React Server Components
  • Clerk authentication with multi-tenant organizations
  • Real-time collaboration with Liveblocks
  • AI-powered voice search and commands
  • Responsive design with shadcn/ui components

API Server (apps/api/)

Backend API services handling business logic and integrations.
apps/api/
├── app/
│   ├── api/                  # API routes
│   │   ├── auth/             # Authentication endpoints
│   │   ├── people/           # Contact management API
│   │   ├── deals/            # Deal management API
│   │   ├── properties/       # Property API
│   │   ├── twilio/           # Twilio integration
│   │   ├── nylas/            # Email/calendar integration
│   │   ├── ai/               # AI services
│   │   └── webhooks/         # Webhook handlers
│   └── webhooks/             # External webhook endpoints
├── lib/                      # Server utilities
│   ├── ai/                   # AI services
│   ├── analytics/            # Analytics services
│   ├── cache/                # Caching layer
│   └── services/             # Business logic
└── middleware.ts             # API middleware
Key Features:
  • RESTful API with OpenAPI documentation
  • Multi-tenant data isolation
  • Rate limiting and security middleware
  • Real-time WebSocket support
  • Comprehensive error handling and logging

Marketing Website (apps/web/)

Public-facing website for marketing and lead generation.
apps/web/
├── app/
│   ├── (home)/               # Landing page
│   ├── blog/                 # Blog and content
│   ├── pricing/              # Pricing information
│   ├── contact/              # Contact forms
│   └── legal/                # Legal pages
├── components/               # Marketing components
└── styles/                   # Marketing-specific styles

Documentation Site (apps/docs/)

This comprehensive documentation site built with Mintlify.
apps/docs/
├── mint.json                 # Mintlify configuration
├── introduction.mdx          # Home page
├── quickstart.mdx            # Getting started
├── architecture/             # Architecture documentation
├── features/                 # Feature guides
├── api-reference/            # API documentation
├── integrations/             # Integration guides
└── dev/                      # Developer resources

Chrome Extension (apps/chrome-extension/)

Browser extension for lead capture and CRM integration.
apps/chrome-extension/
├── src/
│   ├── background/           # Service worker
│   ├── content/              # Content scripts
│   ├── popup/                # Extension popup
│   └── sidepanel/            # Side panel interface
├── public/
│   └── manifest.json         # Extension manifest
└── scripts/                  # Build scripts
Key Features:
  • Lead capture from real estate websites
  • MLS data extraction
  • Direct CRM integration
  • Activity tracking and analytics

Email Templates (apps/email/)

React Email templates for transactional emails.
apps/email/
├── emails/                   # Email templates
│   ├── contact.tsx           # Contact notifications
│   ├── deal-update.tsx       # Deal notifications
│   └── welcome.tsx           # Welcome emails
└── components/               # Email components

Component Documentation (apps/storybook/)

Storybook for component documentation and testing.
apps/storybook/
├── stories/                  # Component stories
└── .storybook/               # Storybook configuration

Shared Packages (packages/)

Core Infrastructure

Database (packages/database/)

Centralized database schema and utilities using Prisma ORM.
packages/database/
├── prisma/
│   ├── schema.prisma         # Database schema
│   ├── migrations/           # Database migrations
│   └── seed.ts               # Seed data
├── lib/                      # Database utilities
└── types.ts                  # TypeScript types
Key Models:
  • User: Authentication and user preferences
  • Organization: Multi-tenant organization management
  • Person: Contact and lead management
  • Deal: Sales pipeline and commission tracking
  • Property: Real estate listings and MLS data
  • Communication: Unified communication tracking

Authentication (packages/auth/)

Clerk-based authentication with organization support.
packages/auth/
├── client.ts                 # Client-side auth utilities
├── server.ts                 # Server-side auth utilities
├── middleware.ts             # Auth middleware
├── components/               # Auth components
└── hooks/                    # Auth hooks

Design System (packages/design-system/)

Comprehensive UI component library built on shadcn/ui.
packages/design-system/
├── components/
│   ├── ui/                   # Base UI components
│   ├── communication/        # Communication components
│   └── visual/               # Visual components
├── hooks/                    # UI hooks
├── lib/                      # Utilities
└── styles/                   # Global styles

Business Logic Packages

AI Services (packages/ai/)

AI and machine learning capabilities.
packages/ai/
├── lib/
│   ├── sentiment-analysis.ts # Call sentiment analysis
│   ├── voice-commands.ts     # Voice command processing
│   └── lead-scoring.ts       # Enhanced lead scoring
└── components/               # AI UI components

Communication (packages/twilio/)

Twilio integration for voice and SMS.
packages/twilio/
├── lib/
│   ├── client.ts             # Twilio client
│   ├── voice.ts              # Voice call handling
│   ├── sms.ts                # SMS messaging
│   └── webhooks.ts           # Webhook processing
└── types/                    # TypeScript types

Analytics (packages/analytics/)

Analytics and tracking infrastructure.
packages/analytics/
├── posthog/                  # PostHog integration
├── hooks/                    # Analytics hooks
└── scripts/                  # Analytics utilities

Storage (packages/storage/)

File storage abstraction for R2/S3.
packages/storage/
├── lib/
│   ├── client.ts             # Storage client
│   ├── service.ts            # Storage service
│   └── types.ts              # Storage types
└── services/                 # Specialized storage services

Utility Packages

TypeScript Configuration (packages/typescript-config/)

Shared TypeScript configurations.
packages/typescript-config/
├── base.json                 # Base TypeScript config
├── nextjs.json               # Next.js specific config
└── react-library.json       # React library config

Tailwind Configuration (packages/tailwind-config/)

Shared Tailwind CSS configuration and utilities.
packages/tailwind-config/
├── config.ts                 # Main Tailwind config
├── typography.config.ts      # Typography configuration
└── index.ts                  # Exports

Workspace Configuration

Package Management (pnpm-workspace.yaml)

packages:
  - "apps/*"
  - "packages/*"

Build Orchestration (turbo.json)

{
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [".next/**", "dist/**"]
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "lint": {
      "outputs": []
    },
    "test": {
      "outputs": ["coverage/**"]
    }
  }
}

Root Scripts (package.json)

{
  "scripts": {
    "dev": "turbo run dev --parallel",
    "build": "turbo run build",
    "test": "turbo run test",
    "lint": "turbo run lint",
    "migrate": "pnpm --filter @repo/database db:migrate:dev",
    "studio": "pnpm --filter @repo/database db:studio"
  }
}

Dependency Management

Internal Dependencies

Packages reference each other using workspace protocols:
{
  "dependencies": {
    "@repo/database": "workspace:*",
    "@repo/auth": "workspace:*",
    "@repo/design-system": "workspace:*"
  }
}

External Dependencies

  • Framework: Next.js 15, React 18, TypeScript
  • Database: Prisma ORM, PostgreSQL
  • Authentication: Clerk
  • Styling: Tailwind CSS, shadcn/ui
  • Communications: Twilio, Nylas
  • Real-time: Liveblocks, Socket.IO
  • AI: OpenAI, custom ML models
  • Testing: Vitest, Testing Library
  • Deployment: Vercel, Docker

Development Workflow

Common Commands

# Install dependencies
pnpm install

# Start development
pnpm dev

# Build all packages
pnpm build

# Run tests
pnpm test

# Database operations
pnpm migrate
pnpm studio

# Linting and formatting
pnpm lint
pnpm format

Package-Specific Commands

# Work with specific packages
pnpm --filter @repo/database migrate
pnpm --filter apps/app dev
pnpm --filter @repo/design-system build

Architecture Benefits

Code Reusability

  • Shared components and utilities across applications
  • Consistent design system and patterns
  • Centralized business logic

Development Efficiency

  • Hot module reloading across packages
  • Parallel development and testing
  • Consistent tooling and standards

Maintenance

  • Single source of truth for dependencies
  • Coordinated releases and versioning
  • Simplified CI/CD pipelines

Scalability

  • Easy to add new applications or packages
  • Clear separation of concerns
  • Independent deployment capabilities

Package Interdependencies

Next Steps

Authentication Architecture

Learn about multi-tenant authentication and security

Database Design

Explore the complete database schema and relationships

API Architecture

Understand API design patterns and endpoints

This monorepo structure is designed to scale from individual developers to large teams while maintaining code quality, development velocity, and deployment reliability.