The whole system

The running jobjob_7Hq2 · accepted · document.fr-CA.pdf · $49.00 final

One Service({...}) becomes a whole business. The file, the objects it creates, the two rules that hold them together, and how the Service and services.dev earn.

Describe the work in one Service({...}). Place people where you want them; by default there are none, and AI delivers every job. Sell it everywhere: the file becomes your API, CLI, MCP server, SDK, site, docs and an app for everyone in the job.

Translation, grown: a sworn translator signs, the registry files it, and a renewal date outlives the job. Each comment names the object a key creates:

services/translation.ts
export default Service({ // Service
  name: 'Translation',
  input: { document: 'file', to: 'language', client: 'party' }, // Parties
  output: { document: 'file', filing: 'text' },
  rules: rules(), // Rules: sign is reserved
  roles: { translator: { pool: translators(), pay: 30 } }, // Pool, and its Tasks
  deliver: { // Steps, each committed by the Gate
    translate: 'ai',
    harden: { review: 'adversarial', lenses: ['meaning', 'terms'] },
    sign: { by: 'translator', stamp: true }, // Task: a member signs
    file: { submit: 'https://registry.example.test/filings', receipt: 'filing' },
  },
  subject: { kind: 'filing', key: 'filing' }, // Subject
  clocks: { renewal: { due: '1y after file', owner: 'buyer', lives_on: 'subject' } }, // Clock
  price: { usd: 89, release: 'file' }, // Money: charged on the receipt
})

Fourteen lines, and every object on the map is in them or made from them: each order is a Job with its Record, the Surfaces and apps are generated, and the Brand is the one file beside it.

  1. DefineBranddomain · words · credentials · feesownsService({...})input · output · steps · pricebound byRulesreserved · open · refused
  2. GenerateSurfacesAPI · CLI · MCP · SDK · Site · DocsandAppscustomer portal · delivery portal · owner console
  3. OrderBuyera person, or their agentordersJobrecord · ledger · parties · clocks
  4. DeliverStepswork · review · ask · submitpropose toGategraph · mechanics · merits · authority · proofcommits toRecordappend-only, the one source of status
  5. PeopleRole stepthe act a credential coverspostsTaskoffered, never assigned, fee fixed at posttoPoolmembers, eligibility, dispatch, pay, door
  6. MoneyEnddelivered · accepted · a receipt · a won dealreleasesChargeheld until its fact is on the recordsplits onLedgerpay · pass-through · AI · fee · your margin
  7. TimeSubscriptiona schedule or an eventmints Jobs onSubjectkept facts · periods · who is of recordcarriesClocksdates the world sets, with rungs
Every doer proposes, and the gate commits. Every surface renders one contract.

One business, many brands. brand.ts renames the core in the business's words (a job is a matter, a member a signer), and several brands can sell the same Services from one Pool:

Run
npx services.dev check
magic values: none
brand.ts · 10 lines · legal · api.lawyer · words job → matter, subject → asset, task → review, member → signer, pool → network, end → outcome

Every doer proposes, and the gate commits. AI, a person, your code and another Service reach the record the same way. Each one proposes, and the gate checks the proposal before it writes. An AI draft and a licensed signature carry the same kind of evidence, and a key that tries a person's act is refused the same way every time.

Every surface renders one contract. The API, the CLI, the MCP server, the SDK, the site, the docs and the apps are renderings of the same registries. No surface renames anything. Brand.words is the one renaming, and you declare it.

Every Service states its price, and every charge waits for the fact it names: delivery, acceptance, a receipt or a verified outcome. When it releases, one ledger splits it, and the buyer, you and each member read the same lines:

you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take

services.dev's take falls on the value your brand adds, less on higher plans. It never touches pay, a pass-through, placement or a licensed fee, and an uncharged job pays none. Your plan decides which keys run on live jobs:

PlanForAdds
FreeSell your first ServiceEvery surface and app, on your builder.domains address; Every review pattern, at any depth; All seven asks, filings with receipts, and clocks on the job; You and two staff as signers; Per job, per unit, tier, self-help and approval prices
LaunchYour name, your people, work that recursYour own domain on every surface; Your own Pool of five, a rented one, or yours on an existing door; Payout schedules, with a hold on new members; Subjects, kept facts, clocks that outlive the job, subscriptions; Outcome pricing, pay at the win, and a sample that falls
TeamRun a market, paid on the winPools to 50, with cascade, tiers, golden Tasks and firms; A door of your own, with a demand board; Standby for a dated season, and one Pool across brands; Share pay to members, and the custodian ladder; Tenants, Rules across regions, staff SSO and custom roles
ScalePass the buyer's reviewUnlimited members in Pools you own; SCIM, audit export and SIEM; Private deploys and data regions; Practice workspaces; Your Pool, exported for other operators

check names the plan live jobs need, line by line:

Terminal
$ npx services.dev check
services/translation.ts · 14 lines · $89 per job, within 48 hours, charged on file's receipt.
  plan    Launch (services.dev) · roles.translator.pool at services/translation.ts:6 · subject at :13 · clocks at :14
          every key runs in test on any plan · deploy --live asks for Launch
  take    your plan's take on each released charge · never on the translator's $30.00

Sign the act yourself, with no pool, keep the clock on the job, and it sells on Free. Money is how a Service earns and pays, line by line.

With input, output and a price, a Service has one AI step and one adversarial review, and it's charged on delivery. No person touches it. Everything else is one key you add:

You addThe business gainsShapeLive on
review lenses and roundsa draft hardened before it shipslinguaFree
an askthe buyer or client signs, consents, answers, uploads, decides or grantsanyFree
human: 'risky'a person you choose looks at the jobs the review flagslinguaFree
rules and a rolea credentialed person performs the reserved act: licensing met by designapi.lawyerFree when you sign; Launch with a Pool
a submitfilings with typed receipts, routed rejections and repair windowsapi.lawyer, apis.taxFree
clocks on the jobdates the world sets, acted on before each oneapis.taxFree
a subject and its clockobligations that run for yearsapis.taxLaunch
price forms and an outcomeevery way the work earns, each released on a factapi.forsaleFree per job; Launch for an outcome
a Pool's tiers and firmsa market of members, ranked by their recordany with peopleTeam

Services as software: why the finished job is what you sell, and the one question that decides it.