Programmable email authoring

LMX (Loops Markup Extended) is one unified, semantic language for email content. Every block is an explicit PascalCase tag, so agents understand it natively and humans can author, edit, and version the exact same source across the API and the Loops editor.

LMX

Beta

Email content, written as tags

A document is a sequence of top-level semantic block tags. Headings, paragraphs, buttons, images, lists and more each map to a single, predictable element, so the meaning of the content is always explicit and easy to generate, diff, and review.

<H1>Hello</H1>
<Paragraph>World</Paragraph>

Semantically named, built for agents

Tags are named for what they mean, not how they render, so agents can intuitively understand how to use it, and a person can read and edit the exact same source.

Nothing to install or compile

There are no third-party packages to install, and no need to generate or compile HTML inside your app. You write LMX, and Loops handles the rest.

One format, two surfaces

LMX sits between the API and the editor. Author programmatically with the Content API, then keep editing visually in Loops, and both stay in sync.

Clean HTML that works everywhere

Everything compiles to clean, production-ready HTML that renders correctly across every email client, so you never have to worry about rendering quirks. Footers are handled for you.

A full campaign in one document

Compose headings, dynamic buttons, dividers, and lists together. Dynamic variables like {contact.firstName} and {data.resetLink} resolve per recipient at send time.

<Style themeId="st_default" bodyColor="#1F2937" />
<Component componentId="logo" />
<H1>Hi {contact.firstName}, your update is ready</H1>
<Paragraph fontSize="16" lineHeight="150">
  Read <Link href="https://loops.so/docs">the docs</Link>.
</Paragraph>
<Button href="https://app.example.com/{contact.userId}" align="center">
  Open dashboard
</Button>
<Divider />
<OrderedList>
  <ListItem>Fix onboarding drop-off</ListItem>
  <ListItem>Publish API v2 changelog</ListItem>
</OrderedList

Everything you can express

A focused set of block and inline tags covers the full structure and formatting of an email.

H1

H2

H3

Paragraph

Quote

CodeBlock

Button

Image

Divider

OrderedList

UnorderedList

ListItem

Columns

Section

Component

Icons

Strong

Em

Underline

Code

Strike

Text

Link

Start writing emails in LMX

LMX and the Content API are in beta. Explore the full tag reference and start authoring programmatically.

Read the LMX docs