Editor views
Pages
PageList (sidebar) lists all pages with their layout badge and language count. PageEditor is the main editing surface:
- Drag-and-drop nodes to reorder.
- Click a node to expand its fields in the right panel.
- Add Block / Add Section controls.
- Layout switcher.
- Page meta (title, description, image, noindex).
- Translation tabs when more than one language is configured.
Collections
CollectionsView lists collections. CollectionSchemaEditor edits a collection's <name>.schema.json. CollectionEntryEditor edits a single entry with the same UX as PageEditor.
Globals
GlobalsView lists globals. GlobalSchemaEditor edits a global's schema. GlobalEditor edits a single global's content (singleton, no list).
Special globals: site (theme, SiteName, Organization fields), cookie (banner config), icons (icon catalog).
Navigation
NavigationEditor is a drag-and-drop tree:
- Top-level items map to top-level pages.
- Children render in a nested list (max 1 level deep).
- Labels are per-language (
Record<string, string>). childSchemalets a nav parent accept typed children (page types).showInMenutoggles sidebar visibility.
Block types
BlockTypesView lists installed blocks. BlockSchemaEditor edits a block's schema. "Reload from package" (reloadBlockFromPackage) overwrites a customized block with the package version — useful for receiving upstream bug fixes. Schema field projectKits copies shared src/lib helpers on install if they are missing (see Block library).
Page types
PageTypesView lists page types. PageTypeSchemaEditor edits the schema plus child meta. Children of a page-type nav parent inherit the child schema and render with childLayout.
Themes
ThemesView is the theme library browser (read-only preview). Theme selection happens on the site global.
Media
MediaView lists uploads. MediaPicker opens from any image field. ImageCropper enforces ratio and maxWidth/maxHeight.
Admin
AdminView is the project-level admin panel: members, invitations, tokens. Available only to GitHub admins of the project.
Setup
SetupView and NewProjectView walk through the first-time config: site name, theme, languages, content. Triggered when magicms.project.json is missing or isSetUp() returns false.
Project guide
MAGICMS.md at the project root is rendered as a Markdown panel in the sidebar. Editors see it without leaving the CMS.