Programmable email authoring

LMX (Loops Markup Extended) is a semantic markup language for email content. Every block is an explicit PascalCase tag, so agents can read and write it, and humans can author, edit, and version the same source across the API and the Loops editor.

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 and people can both read and edit the 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.

Compiles to email HTML

LMX compiles to email HTML for clients such as Gmail, Apple Mail, and Outlook. Rendering can vary by client and version, so send test emails to check your audience’s clients. Loops adds unsubscribe footers to marketing emails.

A full campaign in one document

Compose headings, dynamic buttons, dividers, and lists together. Dynamic variables like {contact.firstName} and {contact.userId} 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

Explore the full tag reference and start authoring programmatically.

Read the LMX docs