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.1 package still exposes freeCatalog, freeSource, and freeSectionDefinitions, and its stored ids use the free- prefix. Use the ids returned by dollie-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.