---
title: Quickstart
description: Orient to the monorepo apps, packages, and product rules.
---

Basenet rebuild is a multi-tenant legal practice platform. The canonical quick start is the repo [`README.md`](https://github.com/blinqx-hq/basenet-rebuild-poc/blob/main/README.md); product and technical rules live in root [`AGENTS.md`](https://github.com/blinqx-hq/basenet-rebuild-poc/blob/main/AGENTS.md). Linear (**Basenet CRM3**, `BLI-*`) owns _what_ to build; this repo owns _what was built and why_.

## Main entrypoints

| Path                    | Role                                      | Local port |
| ----------------------- | ----------------------------------------- | ---------- |
| `apps/web`              | Staff Next.js app                         | 3000       |
| `apps/portal`           | Client portal                             | 3001       |
| `apps/workers`          | BullMQ jobs + cron                        | —          |
| `apps/control-plane`    | Tenant provision / fleet CLI              | —          |
| `apps/docs`             | This site (Blume, Partner + Developers)   | **4322**   |
| `packages/domain`       | Pure domain engines (`can()`, pricing, …) | —          |
| `packages/db`           | Drizzle schemas, migrations, repos        | —          |
| `packages/integrations` | Provider interfaces + adapters            | —          |
| `packages/ai`           | Anonymizer + EU model gateway client      | —          |
| `packages/api-contract` | Zod → OpenAPI 3.1 artifact                | —          |

## How to work here

1. Run `pnpm dev` (Docker Compose backing services) for the demo tenant.
2. Keep business rules in `packages/domain`; persistence in `packages/db`; providers behind `packages/integrations`.
3. Prefer mocks in tests; never call live externals from Vitest.
4. Read ADRs under `docs/decisions/` before crossing package boundaries.

Next: [Architecture](/developers/architecture) · [Setup](/developers/setup)
