A full-stack multi-tenant SaaS platform built as a monorepo. Features a layered Python backend with IAM (authentication, RBAC + ABAC authorization, multi-tenant orgs/projects), real-time cache invalidation over SSE, a background task queue with Redis Streams and RabbitMQ support, and a React frontend with OpenAPI-generated type-safe API client.
| Layer | Technologies |
|---|---|
| Backend | Python 3.13, FastAPI, SQLModel / SQLAlchemy, Alembic, Pydantic, asyncpg |
| Frontend | React 19, Vite, TanStack Router + Query, Zod, Tailwind CSS, Radix UI |
| Auth | JWT sessions, Argon2 password hashing, OTP (SMS/email), RBAC + ABAC |
| Infrastructure | PostgreSQL, Redis (cache, pub/sub, task queue), Traefik, Docker |
| Task Queue | Redis Streams or RabbitMQ (pluggable), delayed task scheduling |
| Real-time | SSE with Redis Pub/Sub, automatic React Query invalidation |
| API Contract | OpenAPI spec generated from FastAPI, TypeScript client via @hey-api/openapi-ts |
| Monorepo | uv workspaces (Python), pnpm + Turborepo (JS), Make for orchestration |
| Quality | Strict mypy, ruff, ESLint, pytest with branch coverage |
├── py/ # Python workspace (uv)
│ ├── packages/
│ │ ├── lib/ # Shared Pydantic utilities and types
│ │ ├── core/ # Domain models, services, migrations, task queue, sync
│ │ ├── api/ # FastAPI routers, serialization, auth, pagination
│ │ └── dev/ # Test infrastructure: fixtures, builders, test doubles
│ └── apps/
│ └── zuma/ # Deployable ASGI app: config, CLI, templates, Docker
│
├── js/ # JavaScript workspace (pnpm + Turbo)
│ ├── packages/
│ │ ├── api-client/ # OpenAPI-generated Axios client + React Query hooks
│ │ ├── client/ # Data layer: auth context, sync, query wrappers, stores
│ │ ├── core/ # Feature UI: auth forms, org/project components
│ │ ├── ui/ # Design system: Radix primitives, Tailwind, components
│ │ ├── eslint-config/ # Shared ESLint configuration
│ │ └── typescript-config/ # Shared TypeScript configuration
│ └── apps/
│ └── web/ # Vite app shell with file-based routing
│
├── docs/ # MkDocs Material documentation site
├── infra/ # Docker images and swarm deployment
├── local/ # Docker Compose for local development
└── Makefile # Top-level orchestration: ci, local, docs
Prerequisites: Docker and Docker Compose.
# Start the full stack (API, worker, database, cache, web)
make local
# API: http://localhost:8000/api/v1
# Web: http://localhost:5173
# Docs: http://localhost:8000/api/v1/docsFor local development without Docker, you'll also need uv (Python), pnpm, and Node 20+.
# Run CI checks (format, typecheck, test) for all packages
make ci
# Build and serve documentation
make docs-serveSee the docs/ directory for detailed documentation on the architecture and subsystems, built with MkDocs Material.