Front-end integration
Contents
Enonic is a Headless CMS: it manages and delivers content through APIs and leaves rendering to your front-end. This page explains how the CMS output is consumed in a front-end and the toolkits Enonic provides to make it easier.
Headless model
Content is queried through the GraphQL API (Guillotine), which returns structured, render-ready data:
-
Content — content types, fields and references exposed as typed GraphQL fields.
-
Media — URLs served by the Image API and Attachment API.
-
Rich text — a
processedHtmlstring plus typedimages,linksandmacrosfields. See Rich text. -
Pages — the component tree of a page (parts, layouts and fragments). See Sites and Pages.
A front-end fetches this data and maps it to its own components, routes and markup.
Official toolkits
Enonic CMS can be used with any front-end framework. To avoid hand-writing the mapping, Enonic publishes and maintains:
-
Enonic React components — render rich text, pages and components, with hooks for overriding how links, images and macros are rendered. See the
@enonic/react-componentspackage. -
Next.xp — a Next.js integration providing page rendering, routing, preview and visual-editor support out of the box. See the Next.xp documentation.
For the full list of supported toolkits, starters and examples, see the Frameworks section and Enonic templates and starters.
Rolling your own
If you integrate a framework the official toolkits don’t cover, your renderer has to handle the Enonic-specific output:
-
Rich-text references — resolve
content://links to your routes, replace image references with responsive<img>/<picture>tags served by the Image API, and rendereditor-macroplaceholders. Each is keyed by arefthat matches adata-*-refattribute inprocessedHtml. See Links, Images and Macros. -
Pages — walk the page component tree and map each part, layout and fragment descriptor to a component. See Sites and Pages.
-
Images — build Image API URLs with the appropriate scaling and
srcset. See Image API. -
Visual editing — to support the Content Studio page editor, emit the DOM markers it expects and initialize the
@enonic/page-editormodule. See Visual page editor. The official toolkits handle this automatically.
| The React SPA tutorial is a hands-on walkthrough of consuming the APIs in a React front-end. |