Dollie Editor SDK guide
Catalogs and the Core Catalog
Define the sections, elements, templates, and AI guidance available inside your page builder
A Catalog is the approved vocabulary of your page builder.
It combines:
- one or more component Sources;
- Section definitions;
- Illustrations and Widgets;
- Page Templates;
- optional Copilot guidance.
The editor and Copilot can only compose with content registered in the active Catalog.
Catalog Sources
A Source groups components from one library and gives them a stable prefix:
const academySource = {
id: 'academy',
label: 'Academy pages',
prefix: 'academy-',
sections: [
{
id: 'course-hero',
name: 'Course hero',
category: 'hero',
component: CourseHero,
authorable: true,
},
],
};
The registered id becomes academy-course-hero.
Prefixes let an application compose several libraries without collisions and preserve provenance in stored Pages.
Catalog Packages
A Catalog Package is a distributable unit containing Sources plus matching definitions, Templates, and guidance.
const academyCatalog = defineCatalog({
id: 'academy',
name: 'Academy pages',
sources: [academySource],
definitions: academyDefinitions,
templates: [courseLaunchTemplate],
ai: {
instructions: 'Use this catalog for course sales and curriculum pages.',
},
});
Packages can be installed from npm or copied into a local catalogs/ directory and discovered by the CLI.
The Core catalog
@dollie_ai/editor-catalog is Dollie's official out-of-the-box Catalog.
It provides:
- marketing Sections;
- a React Illustration library;
- a starter Page Template;
- default Copilot guidance.
The Core catalog exists to give a new integration a polished working surface immediately. It is not a requirement of the engine. You may extend it, combine it with application-owned Sources, or use only your own Catalogs.
The current
0.1package still exposesfreeCatalog,freeSource, andfreeSectionDefinitions, and its stored ids use thefree-prefix. Use the ids returned bydollie-editor info --json; do not rename stored ids by hand.
Compose the active Catalog
createCatalog accepts Catalog Packages and bare Sources:
const catalog = createCatalog([
...discoveredCatalogs,
academySource,
]);
The resulting Catalog can:
- list registered content;
- resolve Sections and Elements;
- summarize installed Packages;
- aggregate Templates;
- support filtered Copilot lookup operations.
Ids are durable
The prefixed id is stored in Pages.
Changing:
- a Source prefix;
- a Section id;
- an Element id;
- a Field key or incompatible Field shape;
can break existing Page definitions.
Treat public Catalog ids as append-only. Use versioned migrations for breaking changes.