# SoftwareBuilder

URL: /code/builders/software · Id: `product:software-builder`

> SoftwareBuilder builds the software Products a Startup sells: APIs, apps, SDKs, and MCP servers.

SoftwareBuilder builds the digital [Products](/business/nouns/product) a [Startup](/business/nouns/startup) sells: [Software](/business/nouns/software), [Datasets](/business/nouns/dataset), and [Agents](/business/nouns/agent). It compiles each Product's [Nouns](/business/nouns/noun) and [Verbs](/business/nouns/verb) into every [Interface](/business/nouns/interface), so one definition runs everywhere.

## What it does
From one definition, SoftwareBuilder compiles each Verb's API route, SDK method, CLI command, MCP call, [App](/business/nouns/app) screen, webhook [Event](/business/nouns/event), and reference row. Each Verb keeps one name, such as `Swap.approve`, so no two Interfaces disagree.

- **Software** keeps each [Customer](/business/nouns/customer)'s records in its own [Tenant](/business/nouns/tenant) and enforces every rule its Verbs declare. See [Software](/products/app/software).
- **Datasets** read each [Source](/business/nouns/source) on schedule and serve lookup, search, and bulk access, every value with its origin. See [Datasets](/products/data/datasets).
- **Agents** pair a [Role](/business/nouns/role) with an eval suite; [mint](/business/nouns/agent/mint) gives each Customer its own, billed on graded work. See [Agents](/products/agent/agents).
- A composite Product computes its coverage, cost, and remedy from its parts: see [composition](/products/composition).
- Every [Change](/business/nouns/change) to a Live API is classified, and every pinned version keeps serving: see [compatibility](/code/builders/software/compatibility).

Every call checks [Entitlements](/business/nouns/entitlement), counts usage on a [Meter](/business/nouns/meter), and returns an [Action](/business/nouns/action). Code runs managed by default; any Verb can switch to a custom or external [Implementation](/business/nouns/implementation).

## Built from
- [Product](/business/nouns/product)
- [Noun](/business/nouns/noun)
- [Verb](/business/nouns/verb)
- [api.sb](/code/platform/api-sb)

## Surfaces
- [api.sb](/code/platform/api-sb) serves each Product's Nouns as collections under the Startup's namespace, with OpenAPI, `llms.txt`, and `agents.json`.
- The `startup-builder` package holds the typed [SDK](/code/sdk/reference) and the [CLI](/code/cli/reference).
- The api.sb [MCP server](/code/mcp/reference) runs any Verb for an Agent, within its Role.
- Each record's address answers in HTML, JSON, and Markdown.

| Term | Kind | Definition |
| --- | --- | --- |
| [SoftwareBuilder](/code/builders/software) | Product | SoftwareBuilder builds the software Products a Startup sells: APIs, apps, SDKs, and MCP servers. |
| [startups.new](/start/startups-new) | Product | startups.new creates a Startup from one sentence and opens it in startups.studio. |
| [Engineering Team](/agents/engineering) | Team | The Engineering Team builds and runs every Product: it implements Nouns and Verbs, ships Changes behind replay, and keeps every Interface up. |
| [Product Team](/agents/product) | Team | The Product Team decides what gets built and why: Product definitions, list Prices and packaging, the build list, and the Site’s Pages for each ICP. |
| [Quality Team](/agents/quality) | Team | The Quality Team checks all work: the checks inside each Process, every outbound Message, and every money move, with verdicts, never Approvals. |
| [Building](/business/lifecycle/states/building) | Lifecycle state | Building is the state of a Startup whose Agents build its Brand, Products, Offers, site, API, and MCP server from its template. |
| [Live](/business/lifecycle/states/live) | Lifecycle state | Live is the state of a Startup that is publicly reachable and takes money from Customers for at least one Offer. |
| [Repeatable](/business/lifecycle/states/repeatable) | Lifecycle state | Repeatable is the state of a Startup whose Customers arrive, pay, and stay, while its work runs without its founder. |
| [Declared Verb attempts](/agents/product#declared-verb-attempts) | Metric | Declared Verb attempts counts live calls in 7 days to each Verb no Function runs yet, ranking which Function to build next. |
| [Autonomous agent business](/start/templates/autonomous-agent) | Startup Template | An Autonomous agent business runs with no humans and sells Agent as a Service to businesses, people, and other Agents. |
| [Autonomous data API](/start/templates/autonomous-data-api) | Startup Template | An Autonomous data API runs with no humans and sells a Dataset API and Headless SaaS to developers and their Agents. |
| [Solo SaaS](/start/templates/solo-saas) | Startup Template | A Solo SaaS has one Human founder and Agents in every other Role, selling SaaS and its Headless SaaS to businesses and people. |
| [Agent as a Service](/products/templates/agent-as-a-service) | Product Template | Agent as a Service sells an Agent that Customers hire into a Role or hand Tasks to through the API or MCP server. |
| [Dataset API](/products/templates/dataset-api) | Product Template | A Dataset API sells keyed lookups and queries over a Dataset to developers and Agents, metered per call. |
| [Directory](/products/templates/directory) | Product Template | A Directory sells listings: Organizations pay to appear in a searchable Dataset that buyers and their Agents browse free. |
| [Dropship store](/products/templates/dropship-store) | Product Template | A Dropship store sells physical goods from a catalog while an upstream holds the stock and ships each Order, with tracking passed through. |
| [Headless SaaS](/products/templates/headless-saas) | Product Template | Headless SaaS sells Software with no App of its own: Customers and their Agents use it through the API, MCP server, SDK, and CLI. |
| [Licensed-human marketplace](/products/templates/licensed-marketplace) | Product Template | A Licensed-human marketplace matches buyers with credentialed professionals and adds recruiting, Credential checks, and an App where they take work. |
| [Marketplace](/products/templates/marketplace) | Product Template | A Marketplace matches buyers with Suppliers who deal with each other directly, and earns a take rate on every transaction it settles. |
| [SaaS](/products/templates/saas) | Product Template | SaaS adds an App for people to Headless SaaS, sold as a Subscription per seat, with onboarding to first value. |
| [Changelog](/code/systems/changelog) | System | Changelog publishes what shipped in each Version as dated notes on the Site, in feeds and to subscribed Customers. |
| [Compliance](/systems/compliance) | System | Compliance maps controls to frameworks, tests each from the records every Action leaves, and publishes the trust center buyers read. |
| [Customer access](/systems/customer-access) | System | Customer access governs who acts in each Customer’s Tenant: members, invitations, Roles, Permissions, sign-in connections, directory sync and keys. |
| [Data editor](/code/systems/data-editor) | System | Data editor edits a Startup’s own Nouns directly: tables, saved views, imports, exports and bulk Changes. |
| [Datasets](/systems/datasets) | System | Datasets is the System behind each Dataset: curated Things of one Noun, built from Sources plus enrichment, refreshed and checked against its promise. |
| [Evals](/agents/evals-system) | System | Evals grades outputs with versioned Evaluators, gates every Change before merge, and keeps each Worker’s track record. |
| [Flags](/systems/flags) | System | Flags decides which copy or behavior each Visitor, Customer or request gets, by rules and sticky splits evaluated at the edge. |
| [Listings](/systems/listings) | System | Listings presents other Parties in a public Collection: unclaimed profiles, claims, verification, paid placement and moderation. |
| [Monitoring](/code/systems/monitoring) | System | Monitoring captures errors, logs and traces, checks uptime and scheduled jobs, and ties each failure to the Version that caused it. |
| [Product planning](/code/systems/product-planning) | System | Product planning groups feature-request Issues toward Goals, ranks them, and publishes what ships next. |
| [Projects](/code/systems/projects) | System | Projects tracks each body of work toward a Goal: its Tasks and Issues, start and target date, triage and assignees. |
| [Repositories](/code/systems/repositories) | System | Repositories holds a Startup’s code and definitions in db.sb, with branches, Changes, checks and Versions. |
| [Status pages](/systems/status-pages) | System | Status pages publishes the health of each Product and opens an Incident when a check fails, updating subscribers until it resolves. |
| [Incident response](/workflows/processes/incident-response) | Process | Incident response restores service first, fixes the cause second, and prevents the repeat third. |
| [Onboarding](/workflows/processes/onboarding) | Process | Onboarding gets every new Customer to first value, by hand until the Startup automates each step. |
| [Product definition](/workflows/processes/product-definition) | Process | Product definition turns each Offer into the Nouns and Verbs that every Interface is generated from. |
| [Provider wiring](/systems/integrations/provider-wiring) | Process | Provider wiring connects a new Startup to the default provider of every capability it uses. |
| [Release](/workflows/processes/release) | Process | Release takes each reviewed Change to all traffic in stages, with automatic revert. |
| [Security](/workflows/processes/security) | Process | Security keeps every Permission earned, every secret fresh, and every access recorded. |
| [Shipping](/workflows/processes/shipping) | Process | Shipping delivers the most valuable Change every day and prunes what nobody uses every week. |
| [Close the loop](/workflows/processes/customer-research/close-the-loop) | Workflow | Close the loop tells each Customer whose Evidence a merged Issue addresses that it shipped, then grades whether they used it. |
| [Design first run](/workflows/processes/product-definition/design-first-run) | Workflow | Design first run compiles sample records, empty states and the shortest path to an Offer’s activation event from the definition. |
| [API Key](/business/nouns/api-key) | Noun | An API Key is a secret a Startup issues to one Customer, which signs that Customer’s calls to its API, SDK, CLI and MCP server. |
| [App](/business/nouns/app) | Noun | An App is an Interface where people work with a Product’s Nouns and Verbs through screens, backed by its API. |
| [Builder](/business/nouns/builder) | Noun | A Builder is a named part of api.sb that builds one side of a Startup; StartupBuilder directs SiteBuilder, SoftwareBuilder, ServiceBuilder, and SalesBuilder. |
| [Credit Grant](/business/nouns/credit-grant) | Noun | A Credit Grant is a prepaid or promotional balance a Customer spends on a Startup’s metered Offers, checked before each call. |
| [Dataset](/business/nouns/dataset) | Noun | A Dataset is a Product of curated Things of one Noun, with a promise that they are true. |
| [Entitlement](/business/nouns/entitlement) | Noun | An Entitlement is what a Customer gets from an accepted Offer: a Verb on a Noun in its Tenant, optionally bounded by a Limit. |
| [Flag](/business/nouns/flag) | Noun | A Flag is a switch, evaluated per Visitor, Customer, or request, that selects which copy or behavior they get. |
| [Flow](/business/nouns/flow) | Noun | A Flow is an ordered path through an App’s Dashboards that takes one Persona from first run to an Offer’s activation Event. |
| [Implementation](/business/nouns/implementation) | Noun | An Implementation is how an Interface, System, or Verb of a Product runs: managed by the platform, custom code on it, or external. |
| [Incident](/business/nouns/incident) | Noun | An Incident is an Issue where an Interface or Site fails Customers in production, tracked from detection to postmortem. |
| [Interface](/business/nouns/interface) | Noun | An Interface is how a person or an Agent reaches a Product: an API, MCP server, CLI, SDK, Site, or App. |
| [Issue](/business/nouns/issue) | Noun | An Issue is a Task reporting a problem or request, such as a bug or a feature request, with a reporter and a triage step. |
| [Member Directory](/business/nouns/member-directory) | Noun | A Member Directory is a Customer’s own list of people and groups, pushed into its Tenant so access follows employment. |
| [Persona](/business/nouns/persona) | Noun | A Persona is a named type of person with a job to do, such as a buyer, a seller, or an admin of an App. |
| [Product Template](/business/nouns/product-template) | Noun | A Product Template is a reusable definition of one kind of Product: what it sells, who supplies the work, who buys, and how it earns. |
| [Publication](/business/nouns/publication) | Noun | A Publication is the branded package a Startup’s Customers use: Domain, Interfaces, packages, docs and Portal, compiled from its Brand and a Version. |
| [Software](/business/nouns/software) | Noun | Software is a Product a Customer uses through Interfaces, from a headless API to a full App. |
| [Source](/business/nouns/source) | Noun | A Source is something a Product draws on to keep its promise but did not build: owned, wrapped, or recruited. |
| [SSO Connection](/business/nouns/sso-connection) | Noun | An SSO Connection links a Customer’s own identity system to its Tenant, so the Customer’s people sign in through it. |
| [Standard](/business/nouns/standard) | Noun | A Standard is a spec an Interface conforms to, so a Startup may publish its Product’s Verbs in a shape outside callers already use. |
| [Agent.mint](/business/nouns/agent/mint) | Verb | Mint creates an Agent in a Customer’s Tenant from an Agent Product the Customer bought. |
| [APIKey.issue](/business/nouns/api-key/issue) | Verb | Issue creates an API Key for one Customer and returns its secret once; afterwards only the prefix shows. |
| [APIKey.revoke](/business/nouns/api-key/revoke) | Verb | Revoke stops an API Key at once: its next call fails with 401, and the record and its history stay. |
| [APIKey.roll](/business/nouns/api-key/roll) | Verb | Roll issues a replacement API Key with the same scope and keeps the old one working until a set time. |
| [App.publish](/business/nouns/app/publish) | Verb | Publish releases an App to its Customers, so each Tenant runs its newest build. |
| [Entitlement.check](/business/nouns/entitlement/check) | Verb | Check says whether a Customer may call a Verb now, how much of its Limit remains, when that resets, and which Offer lifts it. |
| [Noun.retire](/business/nouns/noun/retire) | Verb | Retire removes a published Noun from new Versions; its records, its history and every pinned Version keep serving. |
| [Noun.trace](/business/nouns/noun/trace) | Verb | Trace lists every Verb, Process, Offer, Dashboard and Version that references a Noun, so an edit or a retire shows its reach first. |
| [Offer.grant](/business/nouns/offer/grant) | Verb | Grant adds an Entitlement to an Offer: a Verb its Customers may call, optionally bounded by a Limit. |
| [Offer.subscribe](/business/nouns/offer/subscribe) | Verb | Subscribe accepts a recurring Offer as a Subscription that renews each period until it ends. |
| [Order.fulfill](/business/nouns/order/fulfill) | Verb | Fulfill grants what an Order bought: Entitlements for software and data, a shipment for goods. |
| [Problem.suggest](/business/nouns/problem/suggest) | Verb | Suggest records a Customer’s ask for something the Product lacks as Evidence on a Problem, with the asker attached. |
| [Tenant.provision](/business/nouns/tenant/provision) | Verb | Provision creates a Customer’s Tenant in a Startup’s App, holding that Customer’s records apart from every other. |
| [Verb.retire](/business/nouns/verb/retire) | Verb | Retire removes a published Verb from new Versions; callers pinned to earlier Versions keep calling it. |
| [Version.deploy](/business/nouns/version/deploy) | Verb | Deploy points a Startup’s live address at a Version, so every Interface serves that build. |
| [API](/code/api/reference) | Interface | The API serves every Verb and record of a Product over HTTPS, one route per operation, described by OpenAPI and agents.json. |
| Chat app | Interface | A Chat app reaches a Product inside a chat workspace: its commands are the Product’s Verbs, and it ships through the workspace’s app directory. |
| [CLI](/code/cli/reference) | Interface | The CLI runs every Verb from a shell, as a typed command per Verb or as `do Noun.verb` with JSON input. |
| [MCP](/code/mcp/reference) | Interface | The MCP server gives any agent four tools, `search`, `fetch`, `try` and `do`, that reach every Verb through typed programs. |
| [SDK](/code/sdk/reference) | Interface | The SDK is the typed client `$` that calls every Verb as `$.Noun.verb(input)`, in any Mode, scoped by `$.with`. |
| Webhooks | Interface | Webhooks deliver each Event a Watch selects to an HTTPS endpoint, signed with the Standard Webhooks headers and retried until acknowledged. |

## Next steps
- [Interfaces](/code/builders/software/interfaces): one Verb on every Interface.
- [Agents](/products/agent/agents): sell an Agent, billed on its verdicts.
- [Compatibility](/code/builders/software/compatibility): change a Live API without breaking a caller.