Creating your first design system
This guide walks through the fastest path to a working design system. You do not need a perfect design system on day one. The goal is to understand the core model: template base, modules, settings, and preview.
Before you begin
You should have:
- a rough HTML email layout to work from
- a sense of which parts should stay global
- a sense of which parts marketers should be able to edit
Step 1: Create the design system
Create a new design system and open it in the Design System Editor.
Start with the template base (the design system's base layout), not the modules. Paste in the outer wrapper for the email and make sure it contains {{ content }} where the modules should render.
<html>
<head></head>
<body>
<table>
<tr>
<td>Header</td>
</tr>
</table>
{{ content }}
<table>
<tr>
<td>Footer</td>
</tr>
</table>
</body>
</html>
Step 2: Turn content areas into modules
Look at the parts of the email that marketers should be able to add, remove, or repeat. Those should become modules.
Common first modules:
- hero
- article card
- image-and-text section
- CTA banner
- footer variation
Give each module a clear name. If the module list is hard to scan, the Campaign Editor will be hard to use later.
Step 3: Add settings and inputs
Once the code structure exists, decide what should be editable.
Start with one simple setting group. For example:
- Content setting
- headline input
- body input
- CTA text input
- CTA link input
The Name is what users see in the editor. The Key is what you reference in Liquid.
Step 4: Connect the inputs to Liquid
After you create the setting and inputs, use those values in the module code.
For example:
<h2>{{ content.headline }}</h2>
<p>{{ content.body }}</p>
<a href="{{ content.cta_link.url }}">{{ content.cta_text }}</a>
The exact structure depends on your setting and input keys, but the idea is the same: define the field in settings, then render it in Liquid.
Step 5: Preview the marketer experience
Open preview and test the module the way a marketer would use it:
- change the content
- check desktop and mobile behavior
- confirm the defaults look good
- make sure labels are easy to understand
If the preview feels awkward, fix the design system now. Design system ergonomics matter just as much as the HTML.
Step 6: Save and create a revision
Once the first version works, save it and create a named revision. This gives you a clean milestone before you continue building the module library.
What to do next
After the first design system works, the next improvements are usually:
- better setting grouping
- stronger defaults
- cleaner naming
- repeatable settings for list-like content
- feed-backed settings for structured external data