Skip to main content

Design system development

This section is for design system authors: designers, email developers, and anyone building the system that marketers use in the Campaign Editor.

In Better Email, a strong design system does more than look good. It gives marketers the right amount of flexibility, keeps the brand consistent, and makes common workflows fast.

What you will find here​

If you are new to Better Email design system building, this order works well:

  1. Creating your first design system
  2. Design System Editor
  3. Modules
  4. Settings
  5. Validations
  6. Design system architecture guide

Preview-aware rendering with context.isPreview​

Design systems can access context.isPreview during render. This is useful when you want the preview experience to behave differently from the final exported output.

A common example is ESP-specific code that is required in export, but makes the in-product preview hard to read or visually noisy.

For example, you might want:

  • clean placeholder or fallback content in preview
  • raw ESP code such as AMPscript in the final exported email

That pattern can be handled directly in Liquid:

{% if context.isPreview %}
<p>Preview text for the editor</p>
{% else %}
%%[
/* AMPscript or other ESP-specific export code */
]%%
{% endif %}

Use this when the export logic is technically necessary, but not useful to show in preview.

As a rule of thumb:

  • use context.isPreview to improve clarity in preview
  • keep the preview branch visually representative of the final email where possible
  • use the export branch for ESP-specific logic that should only appear in the delivered output

Older design systems use meta.isPreview, which still works — new design systems should use context.isPreview. See the render context for everything else available under context.

The goal​

The best Better Email design systems are easy to maintain and easy to use. If a marketer can build a polished campaign without touching HTML, the design system is doing its job.