Alinea’s dashboard is built with React and exposes three extension points where you can replace the default UI with your own components. Custom views let you embed bespoke editing interfaces, add contextual tooling alongside entries, or change how entries appear in content lists — all without leaving the Alinea configuration model.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/alineacms/alinea/llms.txt
Use this file to discover all available pages before exploring further.
Extension points
| Extension point | Where it appears | Registered on |
|---|---|---|
| Entry view | Replaces the entire entry edit form when an entry of this type is opened | Type via the view option |
| Root view | Replaces the sidebar panel when a root is selected in the workspace tree | Root via the view option |
| Summary row | Customises how an entry appears as a row in the content list | Type via the summaryRow option |
| Summary thumb | Customises how an entry appears as a thumbnail in the content grid | Type via the summaryThumb option |
Specifying a view path
Theview, summaryRow, and summaryThumb options all accept a string in the format:
#ExportName) identifies the named export to use. If the component is the default export, you can omit the fragment.
Alinea reads these paths at build time and bundles the referenced components into the dashboard. The components are only loaded in the dashboard — they are not included in your production application bundle.
View components are dashboard-only. They run inside the Alinea iframe and have access to dashboard hooks but are not part of your Next.js application bundle. Do not import heavy server-side or Node.js-only dependencies in view files.
Custom root view
A root view replaces the content panel that normally shows a list of entries. Use it to embed a custom landing page, analytics widget, or any React component inside the root navigation.apps/dev/src/cms.tsx (root view registration)
root prop:
apps/dev/src/CustomRootView.tsx
A path string (
'./path/to/File.tsx#Export') or an inline function component. The component receives a root prop containing the root’s metadata.Custom entry view
An entry view replaces the default field-based edit form for entries of a specific type. The component receives aneditor prop — the EntryEditor instance for the current entry.
Registering a custom entry view on a type
apps/dev/src/schema/example/CustomEntryView.tsx
A path string or inline component. Receives
editor (an EntryEditor) and type (the current Type). When a string is used, the referenced component can be a default or named export.Custom view section (Field.view)
Instead of replacing the entire entry form, you can embed a custom component as a section between fields using Field.view. This lets you inject a React component at a specific position within the standard form layout.
apps/dev/src/schema/example/CustomViewExample.tsx
apps/dev/src/schema/example/CustomViewExample.view.tsx
Field.view accepts the same path string format and inserts the component as an inline section between other fields. Use it for contextual help panels, live previews, data visualisations, or any interactive widget that should appear within the editing flow.
Summary views (summaryRow and summaryThumb)
The summaryRow and summaryThumb options customise how entries of a type appear in the content list. They accept the same path string format as view.
Custom summary row and thumbnail
SummaryProps object with the entry’s metadata and (for MediaFile entries) image dimensions and preview data:
SummaryProps shape
Component rendered as a table row in the list view of the content browser.
Component rendered as a card in the thumbnail/grid view of the content browser.
View path resolution
All view path strings follow this convention:- Module specifier — a file path relative to the project root, or any resolvable module alias (e.g.
@/schema/...). Both./src/MyView.tsxand@/schema/MyView.tsxwork. - Export name — the name of the exported component (
#MyComponent). Omit the fragment to use the default export.
| Path string | Resolves to |
|---|---|
'./src/CustomRootView.tsx#CustomRootView' | Named export CustomRootView from ./src/CustomRootView.tsx |
'./src/schema/example/CustomEntryView.tsx' | Default export from CustomEntryView.tsx |
'@/schema/example/CustomViewExample.view#CustomViewExample' | Named export CustomViewExample via alias |
alinea build step and bundles them into the dashboard. If a path cannot be resolved, the build will fail with a clear error pointing to the missing file.