---
title: "Practices"
url: https://services.dev/docs/people/practices
---
# Practices

URL: https://services.dev/docs/people/practices

> A buyer that is itself a practice brings its own professionals into a scoped workspace. They do the steps your roles name, under your Rules, and the practice stays a buyer, never a supplier.

A practice answers one question: what if the buyer has its own credentialed people?

## Open workspaces

```ts title="brand.ts"
export default Brand({ domain: 'api.lawyer', workspaces: true })
```

```ts title="services/contract-review.ts"
roles: { attorney: { pool: 'buyer' } },
```

`workspaces` lets a buyer open a practice console at `/practice`, invite its own professionals, and keep its own conflicts ledger. A role with `pool: 'buyer'` is filled from the ordering practice's own members, and a buyer with no workspace can't order it. Workspaces run on [Scale](https://services.dev/docs/money/plans.md#scale).

## A buyer, not a supplier

The practice orders the jobs and pays your price, and its professionals sign in its console, under the same Rules row as anyone. You pay them nothing: their pay is the practice's business. The workspace itself is software, sold to the practice at your product price, never a charge on its members.

| | A practice | A Pool member |
|---|---|---|
| Who it is | a buyer, with its own people | a person you verified, offered your Tasks |
| Who pays them | the practice | you, per act, at post |
| Where they work | the practice console | the delivery portal |
| What binds the act | your Rules | your Rules |
| Whose conflicts ledger | the practice's | the member's own |

---

- Up: [human: the line](https://services.dev/docs/people.md)
- Previous: [Tenants](https://services.dev/docs/people/tenants.md)
- Next: [Money](https://services.dev/docs/money.md)
