# SiteBuilder

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

> SiteBuilder builds and serves the site of a Startup under its Brand.

SiteBuilder builds and serves the [Site](/business/nouns/site) of a [Startup](/business/nouns/startup): its [Brand](/business/nouns/brand), [Pages](/business/nouns/page), [Domains](/business/nouns/domain), and customer [Portal](/business/nouns/portal). Every Page is one record, served as HTML to people, Markdown to [Agents](/business/nouns/agent), and JSON to software.

## What it does
**Compiled from** the founding [Hypothesis](/business/nouns/hypothesis) of the Startup, its [Products](/business/nouns/product), and its [Offers](/business/nouns/offer). Every claim on a Page names the record and version it came from, so a pivot rewrites the Site as a reviewable diff.

Each [Lifecycle](/business/nouns/lifecycle) state asks the Site for something different:

- **[Idea](/business/nouns/idea).** One Page and a [Waitlist](/business/nouns/waitlist) test demand before the Product exists. The Page indexes at once, because it promises nothing a buyer can pay for.
- **[Building](/business/lifecycle/states/building).** The Brand and its [Theme](/business/nouns/theme), the standard Pages, and a free subdomain. Selling Pages stay out of search.
- **[Live](/business/lifecycle/states/live).** The canonical Domain over HTTPS, checkout, the Portal, and the machine registers: `llms.txt`, `agents.json`, and OpenAPI.
- **[Repeatable](/business/lifecycle/states/repeatable) and [Scale](/business/lifecycle/states/scale).** Comparison and answer Pages released to search in batches, and Page [Experiments](/business/nouns/experiment) judged by a [Metric](/business/nouns/metric).

Three Live entry checks belong to SiteBuilder: the Site is published, the Portal is ready, and the address resolves. No Agent writes markup or CSS. A Page is a [Template](/business/nouns/template) placing [Components](/business/nouns/component), so every edit is data.

## Built from
- [Brand](/business/nouns/brand)
- [Startup](/business/nouns/startup)
- [api.sb](/code/platform/api-sb)

## Surfaces
Owners edit a Site in [startups.new](/start/startups-new) by pointing at the part to change, and preview it as a [Visitor](/business/nouns/visitor), a [Customer](/business/nouns/customer), or an Agent. Each edit card names the [layer](/code/builders/site/design-system#override-in-the-lowest-layer) the edit landed in: `Hero headline → Books closed by day 5, every month · Content`.

Every operation reads the same through each [Interface](/business/nouns/interface). Here an Agent adds a pricing Page to `chairbooks.com`, a bookkeeping [Service](/business/nouns/service) for dental practices:

**Ask**

```text
Add a pricing page.
```

**API**

```bash
curl -X POST https://api.sb/chairbooks.com/pages \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"path":"/pricing","kind":"pricing"}'
```

**SDK**

```ts
import { $ } from 'startup-builder'

const page = await $.Page.create({ path: '/pricing', kind: 'pricing' })
```

**CLI**

```bash
npx startup-builder do Page.create --json '{"path":"/pricing","kind":"pricing"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Page.create({ path: '/pricing', kind: 'pricing' })"
  }
}
```

| Term | Kind | Definition |
| --- | --- | --- |
| [SiteBuilder](/code/builders/site) | Product | SiteBuilder builds and serves the site of a Startup under its Brand. |
| [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. |
| [Marketing Team](/agents/marketing) | Team | The Marketing Team creates and harvests demand: the Brand story, launches, Content, Experiments, and the Metrics the whole Startup reads. |
| [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. |
| [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. |
| [Autonomous directory](/start/templates/autonomous-directory) | Startup Template | An Autonomous directory runs with no humans and sells listings in a Directory to Organizations that want buyers and Agents to find them. |
| [Autonomous storefront](/start/templates/autonomous-storefront) | Startup Template | An Autonomous storefront runs with no humans and sells physical goods as a Dropship store to people and the Agents that shop for them. |
| [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. |
| [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. |
| [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. |
| [CMS](/systems/cms) | System | CMS holds authored Content, from posts to docs to legal Pages, with drafts, schedules and revisions, rendered on every Interface. |
| [Forms](/systems/forms) | System | Forms collects structured answers on a Site or in a Message and routes each submission to a Lead, Evidence or another Thing. |
| [Knowledge base](/systems/knowledge-base) | System | Knowledge base holds the articles Customers and Agents answer from, in a searchable help center that cites every answer. |
| [Listings](/systems/listings) | System | Listings presents other Parties in a public Collection: unclaimed profiles, claims, verification, paid placement and moderation. |
| [Media production](/systems/media) | System | Media production makes a Startup’s Videos, images and voice from its records: drafted, generated, rendered per format, checked, then finalized for publishing. |
| [Privacy](/systems/privacy) | System | Privacy declares each Purpose for personal data, records Consent, answers access requests, masks data on request, and publishes its privacy notices. |
| [Product analytics](/systems/product-analytics) | System | Product analytics turns the Visits and Events captured on every Domain and API into the conversion, activation and retention Metrics every Team reads. |
| [SEO](/systems/seo) | System | SEO tracks the Keywords and AI prompts a Startup’s Pages target, where they rank, which links point at them, and which answers cite them. |
| [Sites](/products/site/sites) | System | Sites keeps each Site with its Pages, navigation and Brand, served on one or more Domains, with previews, redirects and rollbacks. |
| [Waitlists](/systems/waitlists) | System | Waitlists holds the Leads waiting for an Offer that is not open to them and invites them ranked as a Setting chooses. |
| [Content marketing](/workflows/processes/content-marketing) | Process | Content marketing publishes the Pages, answers, and data reports that bring buyers and Agents to a Startup. |
| [Experimentation](/workflows/processes/experimentation) | Process | Experimentation tests one change against a control, with the threshold fixed before the start. |
| [Launches](/workflows/processes/launches) | Process | Launches tell the right Audiences a Startup is live, where those Audiences already look. |
| [Release](/workflows/processes/release) | Process | Release takes each reviewed Change to all traffic in stages, with automatic revert. |
| [Shipping](/workflows/processes/shipping) | Process | Shipping delivers the most valuable Change every day and prunes what nobody uses every week. |
| [Compile the demand kit](/workflows/processes/launches/compile-demand-kit) | Workflow | Compile the demand kit emits every asset the demand Plays read before the first one runs, each tagged with its lineage. |
| [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. |
| [Acquisition](/business/nouns/acquisition) | Noun | An Acquisition is how a Visitor or Prospect first arrived, recorded on its first Event: the referrer kind, the Play, the campaign, and the medium. |
| [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. |
| [Component](/business/nouns/component) | Noun | A Component is a named block of a Page, such as a hero, a pricing table, or a form, filled from records through typed props. |
| [Content](/business/nouns/content) | Noun | Content is authored material with a draft and a published state, such as a post, an article, or a changelog entry. |
| [DNS Record](/business/nouns/dns-record) | Noun | A DNS Record is one DNS answer of a Domain: its type, name and value, who owns it, and what the world last answered. |
| [Domain](/business/nouns/domain) | Noun | A Domain is a hostname that points at a Thing, with a role, a status, and a lifecycle tracked as data. |
| [Form](/business/nouns/form) | Noun | A Form is a set of fields someone fills in on a Site or in a Message, producing a Lead, Evidence, or a Thing. |
| [Funnel](/business/nouns/funnel) | Noun | A Funnel is a designed path to an Offer: a landing Page, an opt-in that makes a Lead, a Sequence, then the Offer. |
| [Keyword](/business/nouns/keyword) | Noun | A Keyword is a search phrase or AI prompt that Pages target, with its rank and citations observed over time. |
| [Page](/business/nouns/page) | Noun | A Page is an addressable page of a Site, of a named type such as pricing, about one Thing or each member of a Collection. |
| [Portal](/business/nouns/portal) | Noun | A Portal is the signed-in part of a Site where each Customer orders, tracks delivery, accepts work, and pays, seeing only their own records. |
| [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. |
| [Site](/business/nouns/site) | Noun | A Site is a website as a Thing: its Pages, navigation, and Brand, served on one or more Domains. |
| [Story](/business/nouns/story) | Noun | A Story is the customer narrative for one ICP, compiled from its Founding Hypothesis and Interview quotes, never written by hand. |
| [Template](/business/nouns/template) | Noun | A Template is reusable Content with variables, filled from Things in the graph and authored as MDX, rendering a Message, Document, or Page. |
| [Theme](/business/nouns/theme) | Noun | A Theme is the design tokens of a Brand, its color, type, spacing, radius, and motion, that every Component reads when it renders. |
| [Video](/business/nouns/video) | Noun | A Video is a timed composition held as data: a timeline of scenes and spoken lines, drafted from records and rendered per format. |
| [Visit](/business/nouns/visit) | Noun | A Visit is one span of a Visitor’s Events on a Startup’s Sites and Apps. |
| [Visitor](/business/nouns/visitor) | Noun | A Visitor is someone a Startup cannot name, known by an id scoped to that Startup. |
| [DNSRecord.remove](/business/nouns/dns-record/remove) | Verb | Remove stops a Startup-owned DNS Record from answering; its history stays and a revert restores it. |
| [DNSRecord.set](/business/nouns/dns-record/set) | Verb | Set adds or changes a Startup-owned DNS Record through a Change, previewed against what the Domain answers today. |
| [Document.render](/business/nouns/document/render) | Verb | Render produces a file from a Document in the format the reader asks for. |
| [Domain.claim](/business/nouns/domain/claim) | Verb | Claim gives a Startup a one-label name under an issuing Domain, or assigns it a held Domain through an approved Change. |
| [Domain.connect](/business/nouns/domain/connect) | Verb | Connect attaches a hostname a Startup already holds and verifies ownership through DNS. |
| [Domain.register](/business/nouns/domain/register) | Verb | Register buys a hostname for a Startup and points it at the Startup’s address. |
| [Domain.release](/business/nouns/domain/release) | Verb | Release lets a Domain’s registration or claim end, keeping its record, history and aliases. |
| [Domain.renew](/business/nouns/domain/renew) | Verb | Renew extends a Domain’s registration by whole years at its renewal price, paid by its owner of record. |
| [Domain.search](/business/nouns/domain/search) | Verb | Search lists candidate names with availability, first-year price, renewal price and the rules of each extension. |
| [Domain.transfer](/business/nouns/domain/transfer) | Verb | Transfer moves a Domain’s registration to another holder or registrar, with its records intact. |
| [Domain.verify](/business/nouns/domain/verify) | Verb | Verify checks a Domain’s DNS, ownership and certificate again and records each result, with the fix for any failure. |
| [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. |
| [Site.publish](/business/nouns/site/publish) | Verb | Publish puts a Site’s current Pages live on its Domains, under its Brand. |
| [Version.deploy](/business/nouns/version/deploy) | Verb | Deploy points a Startup’s live address at a Version, so every Interface serves that build. |
| [Waitlist.join](/business/nouns/waitlist/join) | Verb | Join adds a Lead to a Waitlist for an Offer that is not open to them. |

## Next steps
- [Sites and Pages](/products/site/sites-and-pages): what a Site holds and how its Pages compile from the definition.
- [Design system](/code/builders/site/design-system): Components, Themes, Templates, and the override layers.
- [Brand](/business/brand): the name, voice, logo, and style every surface renders from.
- [Domains](/products/site/domains/site-domains): how a Startup gets an address and keeps it.
- [Publishing](/products/site/publishing): one record served as HTML, Markdown, and JSON.
- [Indexing](/systems/marketing/indexing): which Pages search engines see, and when.
- [Storefront and Portal](/products/site/storefront-and-portal): where Customers buy and receive.