---
title: "Choose your shape"
url: https://services.dev/docs/start/shapes
---
# Choose your shape

URL: https://services.dev/docs/start/shapes

> Find the reference Service that looks like your business, see what each of its jobs leaves you and the plan it runs live on, then build it file by file and take the first real job.

Start at the brand that looks like yours, build it file by file, and open a mechanism page when a line in the file needs one.

## Find your shape

| Your work looks like | Shaped like | How it earns |
|---|---|---|
| Work AI finishes alone: a translation, a summary, a listing | [lingua](https://services.dev/docs/examples/lingua.md) | a price per job, charged on delivery |
| Work with legal effect: a patent filing, a contract review, a demand letter | [api.lawyer](https://services.dev/docs/examples/legal.md) | a flat price per matter, released on the office's receipt |
| Work that runs for years: returns, records, deadlines | [apis.tax](https://services.dev/docs/examples/tax.md) | a yearly plan with allowances, or per return |
| Work paid on what it wins: a closed deal, a recovery | [api.forsale](https://services.dev/docs/examples/sales.md) | nothing on effort; a share at the close |

Most brands are one shape with a little of another. A legal brand watches its dockets for years, and a tax brand has a credentialed signer at each return. Start from the shape that sells the first job.

## Each shape, whole

Every figure below is the ledger `check` prints for that job. Every plan builds and runs every shape in test. The plans listed are the shape's own path, each rung derived by `check` from the brand's files ([which plan your Service needs](https://services.dev/docs/money/plans.md#which-plan-your-service-needs)).

### lingua

Work AI finishes alone: a translation, a summary, a listing. A price per job, charged on delivery. Runs live on: Free · four Services AI delivers alone, each at a price per job; Launch · Translation, signed by a sworn translator from lingua's own Pool.

```ts
// services/translation.ts
import { Service } from 'services.dev'

export default Service({
  name: 'Translation',
  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
  output: { document: 'file' },
  price: 49,
})
```

No `human` line, so AI delivers every job, and an adversarial review checks each one before it ships.

| What a job leaves you | Charged | To others | AI | You keep |
|---|---|---|---|---|
| A translation | $49.00, on delivery | nothing | $0.84 | $48.16 |
| A store listing | $29.00, on delivery | nothing | $0.84 | $28.16 |
| A translated summary, buying your Translation | $79.00, on delivery | your Translation $49.00 | $0.84 | $29.16 |

Your first hour: [lingua](https://services.dev/docs/examples/lingua.md) → [Your own Service](https://services.dev/docs/own.md) → [Harden it](https://services.dev/docs/grow/review.md). Then: [AI steps and briefs](https://services.dev/docs/service/ai.md) → [The customer portal](https://services.dev/docs/app/buyers.md) → [Money](https://services.dev/docs/money.md) → [Your business](https://services.dev/docs/business.md). The mechanism, when you need it: [Talk](https://services.dev/docs/service/talk.md) → [How a job ends](https://services.dev/docs/service/ends.md).

### api.lawyer

Work with legal effect: a patent filing, a contract review, a demand letter. A flat price per matter, released on the office’s receipt; an attorney’s fee sold on their own account at the same checkout. Runs live on: Free · trademark responses you sign yourself, as an attorney admitted in any state; Launch · a small practice: you, two staff and five attorneys, or a rented Pool, on every matter; Team · full depth: tiers and ranked offers, three states, the custodian ladder.

```ts
// services/provisional-patent.ts
  roles: { practitioner: { pool: attorneys, pay: 150 } },
  // …
  deliver: {
    // …
    sign: { by: 'practitioner', stamp: true,
      checklist: ['the claims read on the disclosure', 'every inventor is named', 'a reasonable inquiry was made'] },
    file: { submit: 'https://filings.example/patent-office', to: 'USPTO', receipt: 'application_number', wait: '2d', rejected: 'draft' },
  },
  // …
  clocks: {
    nonprovisional: {
      due: '365d after file', owner: 'of_record', lives_on: 'subject', rungs: ['notice 60d', 'escalate 30d', 'ack daily 7d'],
      lapse: ['order the nonprovisional', 'let it lapse, in writing', 'hand to outside counsel'],
    },
  },
  // …
  price: { usd: 199, self: 79, release: 'file', within: '5d', lines: { filing_fee: { at: 'cost', from: 'file', fault: 'brand' } } },
```

`human: { sign: 'patent-agent', in: 'USPTO', before: 'file' }` is the shorthand; `check` expands it to this role, the rules row and the sign step.

| What a job leaves you | Charged | To others | AI | You keep |
|---|---|---|---|---|
| A provisional patent application | $199.00, on file's receipt | practitioner $150.00 · coverage $4.00 | $2.10 | $42.90 |
| A trademark office action response | $349.00, on file's receipt | attorney's fee $175.00, sold by the attorney · coverage $4.00 | $2.10 | $167.90 |
| A contract review | $99.00, on acceptance | attorney's fee $50.00, sold by the attorney · coverage $4.00 | $1.26 | $43.74 |

Your first hour: [The legal example](https://services.dev/docs/examples/legal.md) → [Build it](https://services.dev/docs/examples/legal/build.md) → [One job, every side](https://services.dev/docs/examples/legal/walk.md). Then: [The rules table](https://services.dev/docs/examples/legal/rules.md) → [The attorneys' Pool](https://services.dev/docs/examples/legal/pool.md) → [The money](https://services.dev/docs/examples/legal/money.md) → [When the attorney declines](https://services.dev/docs/examples/legal/decline.md) → [Take your first real matter](https://services.dev/docs/examples/legal/launch.md). The mechanism, when you need it: [Add a signer](https://services.dev/docs/grow/role.md) → [human: the line](https://services.dev/docs/people.md) → [Rules: how a Service meets licensing by design](https://services.dev/docs/people/rules.md) → [Roles](https://services.dev/docs/people/roles.md) → [Your own team](https://services.dev/docs/people/staff.md) → [Where an act happens](https://services.dev/docs/people/where.md) → [Refusals and cures](https://services.dev/docs/people/refusals.md) → [When the client does it themselves](https://services.dev/docs/people/self.md) → [Credentials the brand holds](https://services.dev/docs/people/brand-credentials.md) → [What a person can do](https://services.dev/docs/people/acts.md) → [Declines and direction](https://services.dev/docs/people/direction.md) → [Two sovereigns](https://services.dev/docs/people/sovereignty.md) → [Of record](https://services.dev/docs/people/of-record.md) → [Buyer, client, party](https://services.dev/docs/people/parties.md) → [Propose, then the gate commits](https://services.dev/docs/service/gate.md) → [The delivery portal](https://services.dev/docs/app/members.md).

### apis.tax

Work that runs for years: returns, records, deadlines. A yearly plan with allowances; a return priced on its date, its state fees at cost; a professional or a self-help price; per year of record. Runs live on: Free · returns you prepare and sign yourself, as an enrolled agent or CPA, one tax year per job; transcripts alongside; Launch · a small practice: you, two staff and five members, or a rented Pool; returns, estimates and the Tax Plan; Team · full depth: a door of its own, standby for the season, the custodian ladder.

```ts
// services/tax-plan.ts
  on: {
    schedule: {
      information: { order: informationReturns, each: 'year', at: '5d after end', catch_up: 'open' },
      annual: { order: annualReturn, each: 'tax_year', at: '1mo after end', catch_up: 'open' },
      estimate: { order: estimate, each: 'quarter', at: '10d before pay', when: sub => sub.input.entity === 'C corp' },
    },
    event: { 'question.asked': question, 'notice.received': noticeResponse, 'fact.restated': amendedReturn },
  },
  price: { usd: 2_400, every: 'year', includes: { 'annual-return': 1, 'information-returns': 25, estimate: 4, question: 12, 'notice-response': 2 } },
```

The year orders itself: its 1099s after the calendar year, each return a month after its year ends, an estimate ten days before each quarter is due, and a question or a notice when one comes, inside the allowances.

| What a job leaves you | Charged | To others | AI | You keep |
|---|---|---|---|---|
| A Tax Plan, for a year | $2,400.00, at the start of each year | nothing | $0.84 | $2,399.16 |
| An annual return, sold alone | $1,800.00, when file is accepted | signer $105.00 · 4 jurisdictions | $1.68 | $1,693.32 |
| A notice response | $299.00, on send's receipt | representative $90.00 | $0.84 | $208.16 |

Your first hour: [The tax example](https://services.dev/docs/examples/tax.md) → [Build it](https://services.dev/docs/examples/tax/build.md) → [One job, every side](https://services.dev/docs/examples/tax/walk.md). Then: [Tax Plan](https://services.dev/docs/examples/tax/tax-plan.md) → [A year, and the next](https://services.dev/docs/examples/tax/years.md) → [The dates to file and pay](https://services.dev/docs/examples/tax/deadline.md) → [The rules table](https://services.dev/docs/examples/tax/rules.md) → [The preparers' Pool](https://services.dev/docs/examples/tax/pool.md) → [The money](https://services.dev/docs/examples/tax/money.md) → [When a date is missed](https://services.dev/docs/examples/tax/missed.md) → [Porting apis.tax](https://services.dev/docs/examples/tax/port.md) → [Take your first real return](https://services.dev/docs/examples/tax/launch.md). The mechanism, when you need it: [A date the world sets](https://services.dev/docs/grow/clock.md) → [Keeping time](https://services.dev/docs/service/time.md) → [Timers and replay](https://services.dev/docs/service/timers.md) → [Deadlines](https://services.dev/docs/service/within.md) → [Clocks](https://services.dev/docs/service/clocks.md) → [Subjects](https://services.dev/docs/service/subject.md) → [One job per period](https://services.dev/docs/service/periods.md) → [Schedules and triggers](https://services.dev/docs/service/subscriptions.md).

### api.forsale

Work paid on what it wins: a closed deal, a recovery. Nothing on effort; a share at the close. Runs live on: Free · meetings AI books and you hold, $400 a meeting held; Launch · deals AI works to close, with closers listed on closers.deals, paid 5% of the closed value at won; Team · full depth: the closer's share at won, tiers by deal size, firms with a bench.

```ts
// services/deal.ts
  roles: {
    setter: { pool: closers, pay: { usd: 250, on: 'meet.held' } },
    closer: { pool: closers, span: ['meet', 'propose', 'negotiate', 'close'], revive: { first_call: '24h' },
      pay: { share: '10%', of: 'closed_value', on: 'won', from: 'buyer' },
      talk: { as: 'client', mail: 'client_domain', calls: 'bridged' } },
    nurturer: { pool: closers, pay: 150 },
  },
  // …
  outcome: { amount: 'closed_value', proof: 'payment', match: { customer: 'account', metadata: 'deal' },
    window: { bank: '60d', card: '120d' }, tail: '90d', due: '90d', collect: job => (job.output.billing === 'monthly' ? 'each' : 'first') },
  price: { usd: 0, share: '5%', of: 'closed_value', on: 'won', ai: 40,
    lines: { referral: { share: '1%', of: 'closed_value', to: 'referrer', on: 'won' } } },
```

Nothing on effort. A share of the closed value at won, proven by the payment and held for its reversal window.

| What a job leaves you | Charged | To others | AI | You keep |
|---|---|---|---|---|
| A $74,000 deal, won by a closer | $11,100.00, at won, on the payment | closer $7,400.00 · setter $250.00 · placement $50.00 | $11.34 | $3,388.66 |
| A $30,000 deal, won by AI alone | $1,500.00, at won, on the payment | nothing | $9.12 | $1,490.88 |
| A deal a closer loses | $0.00 | setter $250.00 · placement $50.00 | $40.00 | −$340.00 |

Your first hour: [The sales example](https://services.dev/docs/examples/sales.md) → [Build it](https://services.dev/docs/examples/sales/build.md) → [One deal, every side](https://services.dev/docs/examples/sales/walk.md). Then: [The Deal Service](https://services.dev/docs/examples/sales/deal.md) → [The closers' Pool](https://services.dev/docs/examples/sales/pool.md) → [The money](https://services.dev/docs/examples/sales/money.md) → [Every branch](https://services.dev/docs/examples/sales/branches.md) → [Every deal shape](https://services.dev/docs/examples/sales/shapes.md) → [Porting api.forsale](https://services.dev/docs/examples/sales/port.md) → [Take your first real deal](https://services.dev/docs/examples/sales/launch.md). The mechanism, when you need it: [Paid on the close](https://services.dev/docs/grow/outcome.md) → [What the buyer sets, and what only the client sets](https://services.dev/docs/service/policy.md) → [Signals](https://services.dev/docs/service/signals.md) → [How a job ends](https://services.dev/docs/service/ends.md) → [Outcomes](https://services.dev/docs/money/outcomes.md) → [Pay](https://services.dev/docs/money/pay.md).

### Add to any shape

- **Your first Pool of people:** [Pool(): your marketplace](https://services.dev/docs/people/pool.md) → [Approval or completion: a Pool's register](https://services.dev/docs/people/pool/register.md) → [Join: the application](https://services.dev/docs/people/pool/join.md) → [The door: where members join and work](https://services.dev/docs/people/pool/door.md) → [Verify a member](https://services.dev/docs/people/pool/verify.md) → [Eligibility](https://services.dev/docs/people/pool/eligibility.md) → [Dispatch](https://services.dev/docs/people/pool/dispatch.md) → [Tasks: offered, never assigned](https://services.dev/docs/people/pool/tasks.md) → [Pay](https://services.dev/docs/people/pool/pay.md) → [The delivery portal](https://services.dev/docs/app/members.md) → [The attorneys' Pool](https://services.dev/docs/examples/legal/pool.md)
- **Run a market of people:** [Conflicts without disclosure](https://services.dev/docs/people/pool/conflicts.md) → [What a member sees, and when](https://services.dev/docs/people/pool/disclosure.md) → [The packet](https://services.dev/docs/people/pool/packet.md) → [When no one claims](https://services.dev/docs/people/pool/fill.md) → [Track records](https://services.dev/docs/people/pool/track.md) → [Integrity](https://services.dev/docs/people/pool/integrity.md) → [Coverage in force](https://services.dev/docs/people/pool/coverage.md) → [One Pool, several brands](https://services.dev/docs/people/pool/share.md) → [A simulated market](https://services.dev/docs/people/pool/simulate.md)
- **Records sold per unit:** [Sourced output](https://services.dev/docs/service/sourced.md) → [File it somewhere](https://services.dev/docs/grow/submit.md) → [Publish before it takes orders](https://services.dev/docs/service/status.md) → [Tax transcript](https://services.dev/docs/examples/tax/transcript.md)

## Next

**[Your own Service](https://services.dev/docs/own.md)**: write the first one from your own work, then grow it a key at a time. Or start at your shape's first page above.

---

- Up: [Your first paid job](https://services.dev/docs.md)
- Previous: [Everyone gets an app](https://services.dev/docs/start/participants.md)
- Next: [Your own Service](https://services.dev/docs/own.md)
