# Publication boundary

URL: /code/builders/startup/publication-boundary · Id: `page:code/builders/startup/publication-boundary`

> A Startup's Customers meet its Publication, a branded package of addresses, packages, keys and docs, and never the platform.

A [Startup](/business/nouns/startup)'s [Customers](/business/nouns/customer) meet its [Publication](/business/nouns/publication), never the platform. Every address, package, key, header and error a Customer sees carries the Startup's own [Brand](/business/nouns/brand).

## What a Publication holds
One record holds everything a Customer touches, all on the Startup's [Domain](/business/nouns/domain).

| What | Property | For openhours.dev |
| --- | --- | --- |
| API | `api` | `https://openhours.dev/api` |
| MCP server | `mcp` | `https://openhours.dev/mcp` |
| Docs, with `llms.txt` | `docs` | `https://openhours.dev/docs` |
| Status page | `statusPage` | `https://openhours.dev/status` |
| [Portal](/business/nouns/portal) | `portal` | `https://openhours.dev/portal` |
| SDK, CLI and MCP packages | `packages` | `openhours` in each package registry |
| API key prefix | `keyPrefix` | `openhours_sk_live_` |
| Key variable | `keyEnv` | `OPENHOURS_API_KEY` |
| Webhook signature header | `webhookHeader` | `Openhours-Signature` |
| Error namespace | `errorNamespace` | `https://openhours.dev/errors` |

## How it compiles
A Publication compiles from the Brand and one [Version](/business/nouns/version). [Deploying](/business/nouns/version/deploy) a Version compiles a new Publication. A restyle compiles one too and leaves the API version alone.

Everything a Customer uses compiles into it: the buy links the [publish gate](/code/builders/startup/publish-gate) emits, the [Components](/business/nouns/component) a Customer embeds, and the generated docs.

## The boundary
Nothing inside a Publication names the platform: no [api.sb](/code/platform/api-sb) address, no `STARTUP_BUILDER_` variable, no `startup-builder` package. The verifier fails any page written for a Startup's Customers that shows one.

The Startup's own [Workers](/business/nouns/worker) still call api.sb with the platform SDK. Only the Customer's side differs.

## Self-host
[StartupBuilder](/code/builders/startup) is the [Studio](/business/nouns/studio)'s own Publication. Every tool a founder gets here, from keys and logs to usage and the test environment, exists in every Startup's Publication for its own Customers.