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

Applications (apps/)

Main CRM Application (apps/app/)

The core real estate CRM interface built with Next.js 15.
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.
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.

Documentation Site (apps/docs/)

This comprehensive documentation site built with Mintlify.

Chrome Extension (apps/chrome-extension/)

Browser extension for lead capture and CRM integration.
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.

Component Documentation (apps/storybook/)

Storybook for component documentation and testing.

Shared Packages (packages/)

Core Infrastructure

Database (packages/database/)

Centralized database schema and utilities using Prisma ORM.
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.

Design System (packages/design-system/)

Comprehensive UI component library built on shadcn/ui.

Business Logic Packages

AI Services (packages/ai/)

AI and machine learning capabilities.

Communication (packages/twilio/)

Twilio integration for voice and SMS.

Analytics (packages/analytics/)

Analytics and tracking infrastructure.

Storage (packages/storage/)

File storage abstraction for R2/S3.

Utility Packages

TypeScript Configuration (packages/typescript-config/)

Shared TypeScript configurations.

Tailwind Configuration (packages/tailwind-config/)

Shared Tailwind CSS configuration and utilities.

Workspace Configuration

Package Management (pnpm-workspace.yaml)

Build Orchestration (turbo.json)

Root Scripts (package.json)

Dependency Management

Internal Dependencies

Packages reference each other using workspace protocols:

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

Package-Specific Commands

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.