ASCII Email Editor

A plaintext-in, HTML-email-out editor. Write in a lightweight markup syntax and get a bulletproof monospace email tested across all major email clients, including most versions of Outlook.

The output uses nested tables, VML buttons, conditional MSO comments, and figure-space preservation to render consistently everywhere. Dark mode is supported via media queries and Outlook-specific attribute selectors.

  • Boxes, tables, calendars, progress bars, and ASCII banners from simple tags
  • Bulletproof VML/HTML buttons with auto-calculated width
  • Random solvable maze generation (Wilson's algorithm)
  • Preheader control with zero-width space padding
  • Responsive font scaling across 3 breakpoints
  • Live preview with localStorage persistence

Cheat Sheet

Preheader

PREHEADER: Your preview text here
Must be the first line of textarea input. Sets the email preview text shown in inbox list view. Stripped from the body.

Headings ## text

## Section Title
Renders as bold text. Only ## is supported.

Inline Code `text`

Use `contenteditable` here.
Renders with a subtle background highlight.

Links [text](url)

[Click here](https://example.com)
Markdown link syntax. Also works inside list items and [BOX] blocks.

Horizontal Rules [HR]

[HR] [HR=double] [HR=wave] [HR=dots] [HR=stars] [HR=dashed] [HR=mixed]
------------------------------ ============================== ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .............................. ****************************** - - - - - - - - - - - - - - - =-==-==-==-==-==-==-==-==-==-=

Centered Text [CENTER]

[CENTER] Hello World [/CENTER]
Hello World

Progress Bar [PROGRESS]

[PROGRESS:75] [PROGRESS:50:Loading]
[====================------] 75% Loading [===========--------] 50%

Highlight [HIGHLIGHT]

[HIGHLIGHT]Important![/HIGHLIGHT]
Light mode: purple (#a5078f) Dark mode: yellow (#fcd34d) Use for emphasis/callouts.

Bold **text**

This is **bold** text.
Markdown syntax for bold. Use for emphasis.

Lists - or *

- First item - Really long item wraps - Nested item
• First item • Really long item wraps nicely with indent • Nested item

Box Styles [BOX]

[BOX] Content here [/BOX] [BOX=rounded]...[/BOX] [BOX=double]...[/BOX] [BOX=heavy]...[/BOX] [BOX=dashed]...[/BOX]
+----------------------------+ | Content here | +----------------------------+ .-----------------------------. '-----------------------------'

Tables [TABLE]

[TABLE] Name,Score,Status Alice,95,Pass Bob,87,Pass [/TABLE]
+============================+ | Name | Score | Status | +============================+ | Alice | 95 | Pass | |----------------------------| | Bob | 87 | Pass | +--------+-------+-----------+

Calendar [CAL]

[CAL:2026-01] [CAL:2026-01-15]
+----------------------------+ | January 2026 | +----------------------------+ | Su Mo Tu We Th Fr Sa | | 1 2 3 4 | | ... | | 11 12 13 14 [15] 16 17 | +----------------------------+ Use YYYY-MM-DD to highlight

Banner [BANNER]

[BANNER]HI[/BANNER]
___ |__| | | | _|_ ~5 chars/letter, fits ~6 chars

Buttons [BUTTON]

[BUTTON Click Me](https://example.com) [BUTTON Sign Up](https://signup.com)
Bulletproof VML/HTML buttons. Light: black bg, white text Dark: white bg, black text Add blank line between buttons.

Maze [MAZE]

[MAZE]
Generates a random solvable 30x37 character maze. Start: > End: X

Q&A Boxes

Q: What is your choice? A: Option 1 A: Option 2 A: Option 3
+----------------------------+ | What is your choice? | +----------------------------+ | [ ] Option 1 | | [ ] Option 2 | | [ ] Option 3 | +----------------------------+

ASCII Blocks [ASCII]

[ASCII] +--------+ | Art | +--------+ [/ASCII]
Preserves exact spacing. Max 30 chars per line. Spaces become non-breaking.

No-Break [NOBR]

Don't break [NOBR]this phrase[/NOBR]
Prevents line wrapping within the tagged text.

Symbols (copy/paste)

✓ ✗ ★ ☆ ✦ • → ← ↑ ↓ ◀ ▶ ▲ ▼ ● ○ ■ □ ◆ ◇ ☐ ☑ ☒ ⚠ ℹ ♥ ♦ ♣ ♠
Auto-forced to text mode. Use for status, lists, icons. check/x/stars/arrows/shapes