Add a Surface
The normal workflow is conversational:- Ask the project agent for the experience you need — for example a POS for iPads, a kitchen display, or an internal admin.
- Review the result in preview.
- Commit or sync so the dashboard can discover the Surface.
- Publish the app so ready Surfaces go live.
- Use Launch from the Surfaces card when the Surface is live.
Dashboard states
Open Settings and find the Surfaces card. Common labels:
A Surface can appear in the dashboard soon after you commit. Its launch URL becomes usable after a production deploy.
Access and project visibility
Surface access is either public or internal. Project visibility still wins:
There is no per-Surface private access setting. Private stays an app-level visibility choice. See App Visibility.
Publish, URLs, and launch identity
- One app publish ships all ready Surfaces together.
- Non-root Surface hosts are production-only in the current release. Preview keeps working inside the sandbox; dedicated Surface URLs appear after production deploy.
- The root Surface uses the app’s primary host (including any custom domain bound to that host).
- Non-root Surfaces use their generated Stardeck Surface URLs today — there is no per-Surface custom-domain picker.
- If you need an internal experience on the root of a public app, make the whole app internal instead. An internal root Surface in a public app cannot receive the separate edge boundary.
Examples
- Restaurant: customer ordering, POS, kitchen display, and back office as Surfaces of one system — Restaurant Surfaces
- Service business: marketing site, customer portal, and staff admin as Surfaces of one booking product