Building blocks
Component nodes
Reusable interface pieces attached to planned routes.
Component nodes are the reusable interface pieces a page or layout renders. They live in the Structure tab's Components view, which shows the route tree and lets you attach components to the routes that use them — a brush sweep attaches one component to every route it crosses.
Reuse is the point
One component can be attached to many routes at once. The attachments are what keep that reuse explicit on the board instead of buried in generated code, and they are what tell Scaffolding to emit the component once rather than per page. A component node maps to components/<name>.tsx, imported by every page that attached it.
Selecting a component records its props, its slots, and whether it renders on the server or the client — decisions the generated skeleton carries. A note on a component's use is per route, because the same table legitimately does a different job on two pages, and the note survives into the generated file as the comment on that component's line.
Your components and the catalogue
Components you define are the project's own. Separately, each platform offers a catalogue of ready-made parts to attach — the shadcn/ui registry on Web, Desktop, and Extension, Ink components on Terminal, React Native and Expo parts on Mobile — so the board can reference an existing library part without you modelling it as a node. Attaching a shadcn part pulls its registry dependencies into the export with it; on Terminal and Mobile a catalogue part is an installed package rather than an emitted file, and the export's package.json reflects that.
Downstream
In the generated build order, components come after stores and before the pages that render them, so each is implemented knowing the state it reads. Components also appear in Traceability, so a feature can be traced to the interface pieces that deliver it.