Skip to content

Spintax and Liquid tester

Count spintax variations, preview them and check merge tags against sample rows.

In your browser

What you enter, paste or load stays on this page and is never sent to us.

Spintax as {a|b|c}, nesting allowed. Merge tags as {{first_name}} or {{ first_name | default: "there" }}.

Runs in your browser. Nothing you type leaves this page.

Each preview uses the next row. A variable matches a column exactly, or ignoring case, spaces, _ and -.

This tool runs in your browser and needs JavaScript.

What is spintax?

Spintax is a way to write several versions of an email at once. Each {a|b|c} is replaced by one of its options when a message is sent, and braces can nest. Merge tags such as {{first_name}} fill in a value from the lead's row, and Liquid's default filter gives the text to use when that value is empty.

Reading the result

The count is exact. A brace counts the sum of its options, and braces side by side multiply, so {Hi|Hello} {there|friend} gives 4. Identical options count separately. Previews give each option an equal chance. Of Liquid, this tester reads variables and four filters: default, capitalize, downcase and upcase. Anything else, such as {% if %}, is reported as not checked. Nothing is uploaded.

Common problems it finds

  • A brace that never closes

    A missing } leaves the brace and everything after it as literal text in every email. The tester gives the line and column where it opened.

  • An empty option

    {Hi|} and {Hi||Hello} give some leads nothing in that place. That is sometimes on purpose, so it is a warning, not an error.

  • A merge tag with no data

    With no value and no default, Liquid prints nothing, and the email opens "Hi ,". The previews mark each gap, and the rows section lists which rows have one.

  • A fallback that never runs

    Liquid's default applies only to an empty value. A cell holding a single space is not empty, so the fallback is skipped. The tester counts those cells on their own.

  • Another tool's syntax

    Sending tools differ. Instantly documents spintax as {{RANDOM | a | b}} and a fallback as {{firstName | there}}. This tester reads {a|b} and {{ firstName | default: "there" }}, and points out the other forms rather than misread them. Preview in your sending tool before launch.

Pulse · cold-email sending

Sending infrastructure that is yours alone.

Every domain gets its own MX host, IP, DKIM selector and certificate. Managed Pulse is available now, and we run it for you; the self-hosted version arrives in Q4 2026.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat: monitoring that tells you the fixConsulting: $65/hr, no retainer