Instance · CMS
Layouts Introduction
Last updated 1 November 2026
The shared frame around your pages and emails, managed in the CMS.
A layout is the frame around your pages: the header, footer, navigation and stylesheet that every page shares. A page holds only its own content, and the layout wraps it. Layouts also wrap emails, so every message has the same header and footer.
Use the CMS to add, edit, copy and delete layouts without working in code. Designers can change the frame while developers work on the pages.
Where to find layouts
In the admin, open CMS and choose Layouts. The docs.insites.io instance had 13 layouts on 1 November 2026, including the CRM module's email layouts.
How a layout works
- The page runsIt produces its own content.
- The layout wraps itThe content appears where the layout prints content_for_layout.
- The visitor sees one pageFrame and content together.
app/views/layouts/application.liquid
<!DOCTYPE html>
<html lang='en'>
<head>
<title>{{ context.page.metadata.title | default: 'My site' }}</title>
</head>
<body>
{{ content_for_layout }}
</body>
</html>Every page uses the layout named application unless it chooses another.
Email layouts
The CRM module ships two email layouts, external_email_layout and internal_email_layout. They are the standard wrappers other modules use for the mail they send. To change how module emails look, a developer overrides these layouts rather than editing each email.
Common mistakes
- Removing
{{ content_for_layout }}. Pages using the layout lose their content. - Deleting the
applicationlayout. Pages on the default layout still load, but with no frame. - Seeing a dash instead of a name in the list. A layout added in code has no display name until one is set in its metadata.