# What Customers see

URL: /code/builders/software/publication · Id: `page:code/builders/software/publication`

> A Startup's Customers meet its Publication, the branded package of its Domain, Interfaces, packages, keys, docs, status page and Portal, and never the platform.

A [Startup](/business/nouns/startup)'s [Customers](/business/nouns/customer) meet its [Publication](/business/nouns/publication): the [Domain](/business/nouns/domain), [Interfaces](/business/nouns/interface), packages, keys, docs, status page and [Portal](/business/nouns/portal) of each [Product](/business/nouns/product), under the Startup's own [Brand](/business/nouns/brand). Nothing inside a Publication names the platform.

## What a Customer meets
A Customer of `transcribe.fm` installs the `transcribe` SDK, sets `TRANSCRIBE_API_KEY` and calls `transcribe.fm/api`. Each part comes from one field of the Publication:

| What the Customer meets | Field | At transcribe.fm |
| --- | --- | --- |
| API | `api` | `https://transcribe.fm/api` |
| MCP server | `mcp` | `https://transcribe.fm/mcp` |
| Docs, with `llms.txt` and Markdown per page | `docs` | `https://transcribe.fm/docs` |
| Status page | `statusPage` | `https://transcribe.fm/status` |
| Portal: keys, usage, billing, [Tenant](/business/nouns/tenant) settings | `portal` | `https://transcribe.fm/portal` |
| SDK, CLI and MCP packages | `packages` | `transcribe` in each package registry |
| API keys | `keyPrefix` | `transcribe_sk_live_…` |
| Key variable | `envPrefix` | `TRANSCRIBE_API_KEY` |
| Webhook signature | `webhookHeader` | `Transcribe-Signature` |
| Error types | `errorNamespace` | `https://transcribe.fm/errors/…` |

The key prefix comes ahead of a fixed pattern, so secret scanners still recognize every leaked key from every Startup with one rule.

The published OpenAPI document, SDK and MCP tool list carry only the [Verbs](/business/nouns/verb) a Customer may call. Operator Verbs such as [`Offer.publish`](/business/nouns/offer/publish) and [`Period.close`](/business/nouns/period/close) stay out, so a Customer's [Agent](/business/nouns/agent) spends no context on calls it cannot make.

## One address, two forms
Each Interface answers at a path on the canonical Domain: `/api`, `/mcp`, `/docs`, `/portal`. `api.transcribe.fm` is an alias that serves the same API in place.

The path is canonical because it needs nothing beyond the canonical Domain. It shares that Domain's certificate, works on a claimed name, and lets the Startup's [App](/business/nouns/app) call its API from the same origin. A Startup that wants the conventional `api.` host pins the alias, and no Customer's code breaks.

A Customer's code and an Agent's MCP configuration hold the base address for years. So the address never changes after the first Customer holds it: a new Domain arrives as an alias, and a rebrand redirects.

## Nothing names the platform
A Customer never sees `api.sb`, the platform's packages, its key variable or its signature header. The registry refuses a Publication whose fields carry any of them.

Each Startup keeps `api.sb/<domain>` as its own namespace. Its [Workers](/business/nouns/worker), its `test` environment and its previews use it, and no Customer is ever given it.

[StartupBuilder](/code/builders/startup) is the [Studio](/business/nouns/studio)'s own Publication, at `api.sb` with the `startup-builder` packages. So every tool a founder gets, from keys and usage to logs and the `test` environment, exists in each Startup's Publication for its own Customers.

## Compiled from a Brand and a Version
A Publication compiles from the Brand and one [Version](/business/nouns/version). A restyle compiles a new Publication and leaves the API version alone, so the Brand changes without breaking a Customer's code.

A Customer's path carries one version, on the Startup's own route. Moving the Startup to a buyer at a sale moves the Domain, and with it every address a Customer holds.

## Next
- [Domains](/products/site/domains/site-domains): how a Startup gets, keeps and moves the names its Publication answers on.
- [Interfaces](/code/builders/software/interfaces): one Verb on every Interface.
- [SDK](/code/sdk): the packages a Publication names.