# Build and publish

URL: /workflows/lifecycle/build-and-publish · Id: `page:workflows/lifecycle/build-and-publish`

> How a Startup's definition becomes Products, a Site and Interfaces, and how the launch checklist admits it to Live.

Building turns a [Startup](/business/nouns/startup)'s definition into working [Products](/business/nouns/product); publishing puts its [Offers](/business/nouns/offer) where [Customers](/business/nouns/customer) and their [Agents](/business/nouns/agent) can accept them. The [launch](/business/nouns/startup/launch) checklist decides when a stranger can.

## Five Builders, one definition
[StartupBuilder](/code/builders/startup) reads the definition and runs [build](/business/nouns/startup/build), which provisions every [System](/business/nouns/system), [Site](/business/nouns/site) and [Interface](/business/nouns/interface) the definition declares. Four more [Builders](/business/nouns/builder) each own one part of the result.

| Builder | Builds |
| --- | --- |
| [SiteBuilder](/code/builders/site) | The Site, its [Pages](/business/nouns/page), its [Brand](/business/nouns/brand) and its [Domain](/business/nouns/domain) |
| [SoftwareBuilder](/code/builders/software) | [Software](/business/nouns/software), [Datasets](/business/nouns/dataset) and Agents, with their APIs |
| [ServiceBuilder](/code/builders/service) | Delivery [Workflows](/business/nouns/workflow), [Outcome Contracts](/business/nouns/outcome-contract) and supply |
| [SalesBuilder](/code/builders/sales) | Offers, [Prices](/business/nouns/price), checkout and demand |

Agents seated in [Roles](/business/nouns/role) do the work. The [Engineering Lead](/agents/engineering/engineering-lead) implements each [Change](/business/nouns/change), and the [Designer](/agents/product/designer) shapes the Site as data that renders for people and Agents alike.

## Sell while you build
The [Building](/business/lifecycle/states/building) state is not hidden. SiteBuilder publishes a reserve page on the first day: the Offer, its Price, and a refundable deposit. Each deposit is commitment-grade [Evidence](/business/nouns/evidence) and counts toward [Committed ICP members](/agents/founding#committed-icp-members).

Take a Startup that sells a Dataset of municipal building permits to developers of construction software. Its reserve page offers a year of API access at $1,200, with a $100 deposit. Twelve deposits in two weeks say more about demand than any feature list.

## Each Product kind proves something different
Choosing an API as the Interface removes nothing a Product promises underneath. Every Startup passes the root checks, and each Product kind adds the proof it needs.

- A Dataset proves provenance: every [Source](/business/nouns/source) is licensed, crawled within its terms, or synthetic.
- An Agent passes its evaluation suite on every task type its Offers sell.
- A [Service](/business/nouns/service) publishes its outcome, its SLA, and the remedy when the SLA is missed.
- A marketplace onboards its first [Suppliers](/business/nouns/supplier), and a licensed one verifies each Supplier's [Credential](/business/nouns/credential).

The permits Startup owes the Dataset proof. Each of its 300 city portals is a Source with its terms recorded, and a city whose terms forbid reuse never enters the Dataset.

## Publish only what delivery keeps
[publish](/business/nouns/offer/publish) makes an Offer available to accept. Every published Offer needs a Workflow that delivers it, with each step assigned to Software, an Agent, or a [Human](/business/nouns/human).

A Page that promises more than delivery provides creates an obligation the Startup cannot meet. The [Content Lead](/agents/marketing/content-lead) writes from the definition, so copy and capability share one source of truth.

## The launch checklist
[Live](/business/lifecycle/states/live) reads its root entry checks in order, plus the checks each Product kind adds.

| Check | Id | Kind | Applies to | Passes when |
| --- | --- | --- | --- | --- |
| Offers published | `live-offers` | `registry` | Every Startup | At least one Offer is published with a price and terms; launch refuses a Startup without one. |
| Work defined | `live-work` | `registry` | Every Startup | Every published Offer has a workflow that delivers it, with each step assigned to software, an Agent, or a person. |
| People assigned | `live-people` | `registry` | Every Startup | Every role the workflows need is held by an Agent or a person, with instructions and limits. |
| Site published | `live-site` | `ui` | Every Startup | The site serves home, pricing, terms, and privacy pages under the Brand, readable by people and agents. |
| Test run passed | `live-test-run` | `transcript` | Every Startup | A sample Customer completes every published Offer end to end in test, with no real charge or message. |
| Portal ready | `live-portal` | `ui` | Every Startup | The customer portal on the site shows each Customer their orders, deliveries, invoices, and messages. |
| Agent API open | `live-agent-api` | `contract` | Every Startup | The API, MCP server, OpenAPI document, llms.txt, and agents.json serve every published Offer and pass conformance. |
| Payouts connected | `live-payouts` | `contract` | Every Startup | Stripe takes payments for the Startup and pays out to its bank account. |
| Address resolves | `live-address` | `contract` | Every Startup | The canonical Domain serves the Site over HTTPS with a valid certificate and, where it embeds a payment form, Stripe lists it as a payment method domain. |
| Five slots at Commitment | `live-slots` | `grade` | Every Startup | All five Founding Hypothesis slots hold Commitment Evidence from outside people. Slots `customer`, `problem`, `approach`, `switch`, `differentiation` at Commitment or stronger, outside Evidence only. |
| Sources secured | `live-sources` | `registry` | [Dataset API](/products/templates/dataset-api), [Directory](/products/templates/directory) | Every dataset source is licensed, crawled within its terms, or synthetic. |
| Evals passing | `live-evals` | `transcript` | [Agent as a Service](/products/templates/agent-as-a-service) | The Agent passes its evaluation suite on every task type its Offers sell. |
| SLA published | `live-sla` | `registry` | [Services-as-Software](/products/templates/services-as-software), [E2E managed service](/products/templates/managed-service) | Every service Offer states its outcome, its SLA, and the remedy when the SLA is missed. |
| Supply seeded | `live-supply` | `registry` | [Marketplace](/products/templates/marketplace), [Licensed-human marketplace](/products/templates/licensed-marketplace) | The first suppliers are onboarded, have accepted supplier terms, and can receive payouts. |
| Credentials verified | `live-credentials` | `contract` | [Licensed-human marketplace](/products/templates/licensed-marketplace) | Every supplier who performs licensed work holds a verified, current credential for each jurisdiction served. |
| Human steps staffed | `live-human-loop` | `registry` | [E2E managed service](/products/templates/managed-service) | Every human step in delivery has a staffed role, a response time, and an escalation path. |

Every Interface reads the same checklist: the [startups.new](/start/startups-new) console shows `8 of 10 ready`, and the API returns the two failing checks. Each failing check opens a [Task](/business/nouns/task) for the Role that owns it.

## Launch
When every check passes, launch deploys the current [Version](/business/nouns/version) to the `live` environment and puts the Startup on its Domain. From then on, `live` runs only what was deployed; an edit reaches Customers only through the next deploy.

Launch starts a clock. [Days to first outside Order](/agents/founding#days-to-first-outside-order) counts from this moment, and the number that matters becomes [Outside paying Customers](/agents/founding#outside-paying-customers).

## Next
[Acquire and sell](/workflows/lifecycle/acquire-and-sell) brings the first outside Customers to the published Offer. [The test and live environments](/code/builders/startup/test-and-live) explain what the test run proves.