Skip to main content

An app surface is the part your user sees. It should read named data, render every state, and send named requests. It should not import package storage details.

A founder adds a Customers screen. The screen needs a list, a loading state, an empty state, and one action: archive a customer.
Read

The surface asks for a stable input name and renders loading, error, empty, and success states.

Render

The user sees concrete product data: customers, messages, tasks, rooms, invoices, or whatever your product owns.

Act

The surface sends a small request to a target instead of mutating local files by hand.

Surface contract

Minimal shape

The screen should render a real product list, survive loading and error states, and send one named product action without importing Bitfield storage or runtime setup.

What not to do

The surface should not parse package material. Package admission and named data reads belong in Runtime Kit, not app components.

Common failures

Verify

Next

Use Package authoring to create the package file that can feed this surface. Use Runtime Kit API for the exact public function contracts.
Last modified on May 10, 2026