Template Designers: Introduction
Design reusable website layouts and sections that map to what the erxes CMS stores and what the selected Web Builder template can render.
The product repository defines what data the CMS stores. The section types, editor controls, and page rendering live in a separate template repository per website template, so this guide gives you a design workflow, not a guarantee that every template supports every control. Review the selected template with its developer before preparing the handoff.
Start with what the CMS stores
Every visual element in your design ends up in one of these records. Naming the CMS field in your handoff is the fastest way to get an accurate implementation.
- The website (
Web):name,description,domain,copyright,logo,favicon, plusappearances:backgroundColor,primaryColor,secondaryColor,accentColor,fontSans,fontHeading, andfontMono. Social links are stored inexternalLinksas name/URL pairs. These are the branding settings you control; a Web Builder deployment writes them into the site'sappearanceandmetaconfiguration. - Navigation (
MenuItem):label,url,icon,order, andparentIdfor nesting. The deploy step looks for menus withkindmain(header) andfooter; use those names in your handoff. Items can also carrylinkType(URL,PAGE,POST,CATEGORY,TAG),openInNewTab, andtarget. - Pages (
Page):name,slug(the route),description,coverImage,status, andpageItems. A page's sections are thepageItemsarray. Each item has atype(which section component renders it), anorder, a free-formconfigobject for the section's options, acontentfield, and optionalobjectType/objectIdpointers that link the section to another record. - Posts (
Post):title,slug,excerpt,content,thumbnail,images,categories,tags,authorId/authorKind,publishedDate, andstatus(draft,published,scheduled,archived). Design your cards and article pages against these fields.
Section type values and the keys inside config are defined by the template, not the CMS schema. The CMS stores any type string and any config JSON; whether a "hero" or "gallery" section renders correctly depends on the template's components.
Design for realistic content
Identify the audience, primary page action, and supported routes. Use realistic titles, images, translated text, and collection sizes. The CMS supports per-language translations of post and page fields, so check how your layout handles longer translated strings. Include loading, empty, error, and success states wherever the page renders live data such as post lists or menus.
Handoff checklist
| Design element | CMS field it maps to | What to specify |
|---|---|---|
| Brand colors | Web.appearances.primaryColor, secondaryColor, accentColor, backgroundColor | Hex values and which UI role each color plays |
| Typography | appearances.fontSans, fontHeading, fontMono | Font family and fallback for body, headings, code |
| Logo and favicon | Web.logo, Web.favicon | Source assets and minimum sizes |
| Header nav | MenuItem with kind main | Item order, nesting depth, mobile behavior |
| Footer nav and copyright | kind footer, Web.copyright | Link groups, legal text |
| Social links | Web.externalLinks | Name/URL pairs and icons |
| Page list | Page.name, Page.slug, Page.status | Route for each page |
| Sections per page | Page.pageItems (type, order, config) | Ordered section list and editable fields per section |
| Post cards and article | Post fields above | Which fields appear, image crops, date format |
Follow the design track
- Template Structure: organize global elements, pages, sections, and fields.
- Template Layout: specify branding, header, and footer.
- Template Sections: define section content and states.
- Template Pages: document per-page editability and flows.