Free to build. Each plan adds what the business grows into.
Every key runs on every plan in test. Your plan decides which run on live jobs, and check names the one your file needs, line by line.
- On Free, services.dev earns only when your Service gets paid.
- There is no trial clock: each gated key runs three paid live jobs, however long they take.
$ npx services.dev checkservices/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
Which plan does a Service like mine need?
check derives it from the files. Here is each reference Service’s whole path, every rung read from its own folder.
Derived by check
Free
Sell your first Service
Runs lingua; api.lawyer's trademark responses, signed by you; apis.tax's returns, signed by you; api.forsale's meetings, held by you
$0
Pay only when a job’s charge releases.
The highest take on each paid job
Everything to sell one Service
- Every 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
Every key on Freenpx services.devstarts you here, with every key in test.Derived by check
Launch
Your name, your people, work that recurs
Runs lingua with its own Pool; api.lawyer as a small practice; apis.tax as a small practice; api.forsale on closers.deals
a month
A lower take on each paid job
Everything in Free, and
- Your 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
You need Launch when
- The Service moves to your own domain
Brand.domain - The second verified person
Pool({...}) - The first Task an imported Pool fills
pool: '<door>/<pool>' - Your Pool lists on an existing door
door: '<existing door>' - The first obligation that outlives its job
subject, subject.period - The first subscription
price.every, price.includes - The first deal paid on the close
price.share, outcome - The first review line worth deleting
human: { sample, floor } - The take you'd save passes Launch's price
You don’t pick Launch.
What needs Launchchecknames it when your file needs it.Derived by check
Team
Run a market, paid on the win
Runs api.lawyer at full depth; apis.tax at full depth; api.forsale at full depth
a month
A lower still take on each paid job
Everything in Launch, and
- Pools 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
You need Team when
- Placement paid passes the cost of a door of your own
Pool.door, Pool.public - The first Task nobody claims
dispatch: 'cascade' - The first firm with a bench
Pool.tiers, Pool.firms - The first member paid a share
pay: { share } - The first season your Pool can't fill on raises alone
Pool.standby - The second region
Rules.regions - The first reseller
Brand.tenants - The take you'd save passes Team's price
You don’t pick Team.
What needs Teamchecknames it when your file needs it.Derived by check
Scale
Pass the buyer's review
Runs any of them, private and pinned to a region
a month
The lowest take on each paid job
Everything in Team, and
- Unlimited members in Pools you own
- SCIM, audit export and SIEM
- Private deploys and data regions
- Practice workspaces
- Your Pool, exported for other operators
You need Scale when
- A buyer's security questionnaire
- Another operator asks to staff from your Pool
Pool.export - A practice wants its own bench
Brand.workspaces - The take you'd save passes Scale's price
You don’t pick Scale.
What needs Scalechecknames it when your file needs it.
Never for sale.
What keeps a reserved act lawful, a member paid and a refusal uncharged runs on every plan. A plan buys capacity, never compliance or protection.
- Rules rows, each with counsel's position
- Every reserved act is signed by a credentialed person or refused with its cure; the plan sets how many people you seat, never whether an act is lawful
- A credential the brand holds, when a Rules row names it for a reserved act
- The stamped signature, written into the artifact before it is hashed
- Consent and sign asks
- A licensed fee on the member's own rail, at a two-seller checkout
- No take on a licensed fee, or on any member-rail fee
- Flat pay on every outcome of the act, a send-back and a decline included
- Pay accrues at the act, on its own clock, and is never clawed back, on a sampled job or after a downgrade
- Held share pay sits untransferred under its own job, and only that job's outcome going back inside its window reverses it
- services.dev takes nothing a member pays
- No member is charged per Task, per lead or by a percentage; the one allowed charge is a flat software fee, declared before anyone joins
- A refusal never charges
- The append-only record of every job
Every key, and its plan.
Runs on live jobs Runs in test, and on three sampled live jobs: build it now
At a limit, the next member, tenant or region answers the same OFFER; nothing already running stops.
Your console says when to move up.
The plan card reads your own jobs: what each key you wrote would have earned or saved, and when a schedule will cross a sample.
Every figure links to the jobs it came from. Buyers and members never see it.
→ GET /owner/plan # the owner console's plan card, for a tax brand on Launch← plan · Launch (services.dev) · your files need Team for 2 keys needs Team · Pool.standby at pools/preparers.ts:32 · 3 of 3 sampled jobs released · new Tasks fill on the ladder Team · subject.of_record.custodian at services/annual-return.ts:31 · 1 of 3 sampled jobs released shadow from this month's 212 returns, had each key you wrote run as written Pool.standby · 38 Tasks claimed 2h 10m sooner on average · $214.00 of ladder raises not paid · 38 jobs kept on Launch · human: { sample, floor } · 46 reviews not needed · $1,380.00 of review pay kept · 46 jobs placement $612.00 to the door you import from, for 204 Tasks · a door of your own: a month on Team ahead Feb 1 mints 40 annual returns · subject.of_record.custodian has 2 sampled jobs left · plan.ahead offers Team on Jan 2 take break-even: a month of released charges · the take Team saves on your base, against the gap in price
One claim on each dollar.
Each dollar of a released charge has one claimant. services.dev's take sits on one line: the value your brand adds.
you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take
- It applies only when a charge releases, and reverses with it.
- It falls as the plan rises.
- Its base is the value your brand adds: never a member’s pay, a licensed fee, a fee or coverage passed through at cost, a placement line, or a nested Service’s own line.
- Charges run on your own Stripe account, under your brand.
- A plan pays for itself once the take it saves passes its price: your month's take base, times the gap between the two plans' takes, against the gap between their prices.
| Line | Amount | Claimant | services.dev’s take |
|---|---|---|---|
| The translator's pay | $30.00 | the sworn translator | $0 |
| lingua's value added | $59.00 | lingua | |
| AI $0.84 comes out of lingua's line. The take sits on $59.00 and nowhere else. | |||
| Line | Amount | Claimant | services.dev’s take |
|---|---|---|---|
| The attorney's fee, sold by the attorney | $175.00 | the attorney, on their own account | $0 |
| Coverage, at cost | $4.00 | the Pool's malpractice cover | $0 |
| api.lawyer's value added | $170.00 | api.lawyer | |
| Two sellers on one receipt. AI $2.10 comes out of api.lawyer's line. | |||
| Line | Amount | Claimant | services.dev’s take |
|---|---|---|---|
| The signer's pay, two signatures | $210.00 | the signer | $0 |
| The representative's pay, one notice | $90.00 | the representative | $0 |
| Eight jobs inside the allowance | $0.00 | no charge of their own | $0 |
| apis.tax's value added | $2,100.00 | apis.tax | |
| AI $7.56 across the eight jobs comes out of apis.tax's line. The take settles once, on $2,100.00. | |||
| Line | Amount | Claimant | services.dev’s take |
|---|---|---|---|
| The closer's share, charged to the seller | $7,400.00 | the closer, 10% at won | $0held to the window |
| The setter's pay | $250.00 | the setter, flat at the held meeting | $0 |
| Placement, two gigs on closers.deals | $50.00 | the door's operator | $0 |
| api.forsale's value added | $3,400.00 | api.forsale | held to the window |
| AI $11.34 comes out of api.forsale's line. If the payment reverses inside the 60 days, the 5%, the closer's share and the take reverse together; the setter keeps their $250.00. | |||
Going live on a gated key.
Each gated key runs three paid live jobs before your plan is asked for. Then the deploy answers with the plan, the lines that need it and the way out.
The gate reads each Service, not the folder: apis.tax sells transcripts on Free while its annual return's sample runs, and only the jobs that reach a gated key wait for its plan.
A job, a subject and a subscription keep the plan they started under, so a downgrade cuts nothing in flight.
$ npx services.dev deploy --liveOFFER · Launch runs this Service live. because roles.translator.pool at services/translation.ts:6 · 3 of 3 sampled jobs released subject at services/translation.ts:13 · 1 of 3 sampled jobs released clocks.renewal at services/translation.ts:14 · 1 of 3 sampled jobs released cure upgrade to Launch, or services.dev check --fit free next npx services.dev plan upgrade launch
{ "type": "OFFER", "object": "offer", "plan": "launch", "because": [ { "key": "roles.translator.pool", "at": "services/translation.ts:6", "sampled": "3 of 3 released" }, { "key": "subject", "at": "services/translation.ts:13", "sampled": "1 of 3 released" }, { "key": "clocks.renewal", "at": "services/translation.ts:14", "sampled": "1 of 3 released" } ], "cure": "Upgrade to Launch, or run services.dev check --fit free for the rewrite that stays on Free.", "next": { "do": "upgrade", "tool": "upgrade_plan", "http": "POST https://services.dev/v1/plan", "arguments": { "plan": "launch" } }}
$ npx services.dev plan ceiling teamceiling · Team · your agent accepts an OFFER for Team or lower, and records why$ npx services.dev deploy --liveOFFER · Launch runs this Service live. accept by your coding agent, within the ceiling record plan.accepted · launch · because roles.translator.pool, subject, clocks.renewal
Set a plan ceiling, and your coding agent accepts an OFFER within it and records why. Above it, the OFFER comes to you.
Before you pick.
- Do I choose a plan?
checkreads it off your files and names each line that needs it.deploy --liveasks for it once a gated key has run its three sampled jobs, and your coding agent can accept within a plan ceiling you set.- Is there a trial?
- There is no clock. Every key runs in test on every plan, and each gated key runs three paid live jobs before your plan is asked for, however long a season takes. Where a job takes months to release, three run in flight at a time, a fourth live order answers OFFER, and the console dates the end.
- What does the take apply to?
- The value your brand adds, never the whole charge: you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take. A placement line carries one claim, the door operator's, and the take never touches it.
- What happens on a refund?
- The take reverses with the charge. Each charge runs on behalf of your account, so a refund draws on your share of it, and pay a member earned at the act stays theirs.
- Can I downgrade?
- Yes, and nothing in flight stops. A job, a subject with its clocks, and a paid subscription cycle keep the plan they started under. Members see any change on the delivery portal before new Tasks stop.
- Do my buyers see services.dev?
- No. Every surface, app and receipt carries your brand, and the take is a line on your ledger, never the buyer's.