Extensions.definePage() defines a page: a full screen under your app’s own URL, listed in the Apps section of the sidebar.
File location
The page must be the default export ofsrc/app/pages/<slug>/page.tsx. The folder name is the page’s slug and its URL segment. See Pages for the discovery rules.
Example
src/app/pages/dashboard/page.tsx
Grid, Card and Stack for the layout components.
Arguments
string
required
The name of the page. Used as the sidebar label, the browser tab title and the page header.
"full" | "centered"
How wide the content region is.
"full" runs edge to edge. Use it for dashboards and tables."centered" caps the content width and centers it, matching Attio’s home page. Use it for
reading-heavy pages and forms.Defaults to "full".React.ComponentType<{}>
required
A React component that renders the page. It receives no props.It can suspend while loading data.
Pages are workspace-level, not record-scoped, which is why
Page gets no props. For UI about a
single record, use a record tab: its Tab component receives
recordId and object.