Skip to main content
The Maybern codebase is organized as a monorepo containing the backend, frontend, and supporting tooling.

Top-Level Structure

maybern/
├── backend/           # Django backend
├── frontend/          # React + TypeScript frontend
├── docs/              # Mintlify documentation (this site)
├── e2e/               # End-to-end tests (Playwright)
├── mxl/               # MXL formula language documentation
├── shadow/            # Shadow package for data loading
├── shared/            # Shared TypeScript utilities
└── tools/             # Internal development tools

Backend (backend/)

The Django backend handles all API endpoints, business logic, and async processing.
backend/
├── server/
│   └── apps/          # Django applications
│       ├── auditing/
│       ├── calculations/
│       ├── capital_activity/
│       ├── capital_calls/
│       ├── celery/
│       ├── clients/
│       ├── closings/
│       ├── core/
│       ├── documents/
│       ├── equalizations/
│       ├── events/
│       ├── feature_flags/
│       ├── fees/
│       ├── notices/
│       ├── transactions/
│       └── waterfalls/
├── ai/                # AI service
├── notice_service/    # PDF generation service (Node.js)
├── wiki/              # Backend development documentation
└── codemod/           # Code transformation tools

Frontend (frontend/)

The React frontend provides the user interface.
frontend/
├── src/
│   ├── app/           # App routing and providers
│   ├── features/      # Feature-specific components
│   │   ├── account/
│   │   ├── admin/
│   │   ├── auditing/
│   │   ├── capital-activity/
│   │   ├── capital-call/
│   │   ├── closings/
│   │   ├── distributions/
│   │   ├── events/
│   │   ├── fees/
│   │   ├── investors/
│   │   ├── reports/
│   │   ├── transactions/
│   │   ├── waterfall/
│   │   └── ...
│   ├── shared/        # Shared components and utilities
│   └── api/           # Generated API clients
├── buildSrc/          # Build scripts and code generation
└── public/            # Static assets

Key Directories

e2e/

End-to-end tests using Playwright. See the E2E Testing Guide.

mxl/

Documentation and examples for MXL (Maybern Expression Language), our custom formula language for financial calculations. See the MXL Language Reference.

shadow/

The shadow package handles data loading and import operations. Used primarily for integration testing and data migrations.

tools/

Internal development tools including:
  • lark-ts-generator: Generates TypeScript parsers from Lark grammar files

Configuration Files

FilePurpose
justfileTask runner commands
docker-compose.ymlLocal development containers
docker-compose.e2e.ymlE2E testing containers
.github/GitHub Actions workflows

Development Workflow

  1. Backend changes: Work in backend/server/apps/
  2. Frontend changes: Work in frontend/src/
  3. API changes: Update backend APIs, then regenerate frontend clients with just codegen clients
  4. Documentation: Update files in docs/
See the Getting Started Guide for setup instructions.