Skip to main content

A placeable surface is a product UI descriptor. It says what can appear, where it can appear, and which named data reads or targets the surface may use. The shell reads that descriptor and places the surface without importing the feature’s private screens, stores, actions, or file layout.

What this explains

This page explains the primitive. It is not the Runtime Kit Cookbook recipe.Your product grows from one launch surface into launch, help, support, settings, and billing. The shell should still behave like a generic place to put surfaces, not like a product-specific switchboard.Use this page when you need to understand why the architecture stays clean. Use Placeable surface product loop when you want the full example succession with files and code.

The separation

The shell should not import launch dashboard code. It should not import support behavior. It should not import the package that owns help search.The shell should only use this descriptor data:That is the same class of idea as a command center: the arrangement model is generic, the sidebar is generic, and package-specific UI rules live in descriptors and surface bodies.

Visual map

The flow has four jobs. Each job stays separate.
01

Records, stored bytes, and named targets enter through package files.

02

Package material becomes named data reads and callable action names.

03

Descriptors say which region, component, inputs, and targets each surface uses.

04

The shell renders labels, regions, and active surface ids without product branches.

Ownership lanes

Data owner

Owns the records, package-owned bytes, and callable targets.

Access owner

Turns package material into public reads and requests.

Product owner

Declares where a surface belongs and what it may touch.

Arrangement owner

Places surfaces. It does not import package-specific UI code.

The product map

The product becomes larger without making the shell import package setup code or product-specific screen names.

Placement sketch

Sidebar
Region: main

welcome-copy + launch-checklist → launch.next-step

Region: panel

help.search

What this prevents

The descriptor is small on purpose. The shell can stay generic while the product becomes more capable.

Dumb shell rules

The shell owns arrangement. It does not own package-specific UI rules.If the shell needs to understand a business noun to render the layout, the descriptor is missing something.

Descriptor rules

A descriptor should be plain data. It gives the shell placement facts and gives the surface body its allowed public names.

Failure modes

Build it

The complete Runtime Kit Cookbook recipe lives in Placeable surface product loop. It walks through the package file, descriptors, shell, surface body, and review checklist as source-owned examples.Read Runtime Kit concept map when you want to see how placeable surfaces fit with package files, named data reads, callable targets, and local state.Read Package to screen when you want the first tutorial that builds one package-to-surface chain.Read Runtime Kit API when you need the exact public read and request contracts used inside a surface body.
Last modified on May 10, 2026