Skip to content

Publication boundary

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

A Startup's Customers meet its Publication, never the platform. Every address, package, key, header and error a Customer sees carries the Startup's own Brand.

What a Publication holds

One record holds everything a Customer touches, all on the Startup's Domain.

WhatPropertyFor openhours.dev
APIapihttps://openhours.dev/api
MCP servermcphttps://openhours.dev/mcp
Docs, with llms.txtdocshttps://openhours.dev/docs
Status pagestatusPagehttps://openhours.dev/status
Portalportalhttps://openhours.dev/portal
SDK, CLI and MCP packagespackagesopenhours in each package registry
API key prefixkeyPrefixopenhours_sk_live_
Key variablekeyEnvOPENHOURS_API_KEY
Webhook signature headerwebhookHeaderOpenhours-Signature
Error namespaceerrorNamespacehttps://openhours.dev/errors

How it compiles

A Publication compiles from the Brand and one Version. Deploying 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 emits, the Components a Customer embeds, and the generated docs.

The boundary

Nothing inside a Publication names the platform: no 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 still call api.sb with the platform SDK. Only the Customer's side differs.

Self-host

StartupBuilder is the 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.