Design email templates in a visual editor, attach merge-tag and visibility logic, then export clean HTML, MJML, or React Email. Render on your own infrastructure and send with whatever ESP you already use.

Maildeno gives product teams a drag-and-drop editor and gives developers a template format they own — stored in their own database, rendered in their own process, with no vendor in the send path.

Where do you want to start?

🚀 Quickstart

New here? Get your first email rendered in under five minutes.

Get started →

🧩 Open source

Self-host the editor and renderer — MIT-licensed, zero backend required.

Explore the open source tools →

✏️ Email builder

Learn the editor: templates, merge tags, visibility rules, and exporting.

Explore the builder →

🔌 SDK reference

Integrate rendering with the JavaScript, Python, or PHP SDK.

Browse the SDK →

Two ways to use Maildeno

Both paths read and write the same template JSON, so choosing one does not lock out the other.

Open source MIT Maildeno Cloud

Editor

@maildeno/editor embedded in your own app

Dashboard at maildeno.com/login

Rendering

@maildeno/renderer — fully offline

Render API + SDKs, cached and rendered in-process

Template storage

Your database, via a storage adapter (localStorage by default)

Cloud sync, team collaboration, version history

Images

Wherever you already host assets

Built-in image CDN

Account / API key

Not required

Required

Cost

Free — MIT

Free tier, then paid plans

Not sure which? Start with open source. It needs no account, and everything you build transfers if you later want cloud sync — it is a one-line adapter change, not a migration.

The shape of it

  BROWSER — your app                    SERVER / EDGE — your send path

  ┌────────────────────┐                ┌──────────────────────────────┐
  │  @maildeno/editor  │                │  @maildeno/renderer          │
  │                    │                │      — or a hosted SDK       │
  │  drag · drop ·     │                │                              │
  │  merge tags ·      │                │  render(template, {          │
  │  visibility rules  │                │    mergeTags, context        │
  └─────────┬──────────┘                │  })                          │
            │ getJson()                 └──────────────┬───────────────┘
            ▼                                          │
  ┌────────────────────┐   read at send time           ▼
  │  YOUR DATABASE     │ ────────────────────►  HTML / MJML / React Email
  │  template JSON     │                                │
  └────────────────────┘                                ▼
                                          Resend · Postmark · SES · any ESP

The template JSON is the whole interface. Everything else is replaceable.

Key capabilities

Capability Description

Drag-and-drop editor

Build responsive emails without writing HTML or CSS. Eleven built-in block types, plus your own.

Merge tags

Inject dynamic text, URLs and attribute values at render time, each escaped correctly for where it lands.

Visibility rules

Show or hide sections on context values like plan or country — resolved by Maildeno, or emitted as your ESP’s own syntax.

Multi-target export

One template → HTML, MJML, React Email, or portable JSON.

14 ESP syntaxes

Klaviyo, Mailchimp, Braze, SFMC, HubSpot, Iterable, SendGrid and more, plus custom registration.

Accessibility checking

A WCAG 2.1 AA-aligned rule catalogue built into the editor, with per-issue suppression.

Client preview

Thirteen email clients modelled, including four genuinely different dark-mode behaviours.

Edge rendering

The renderer runs in Cloudflare Workers, Vercel Edge, Deno and the browser — same import, same output.

Zero dependencies

@maildeno/renderer has no runtime dependencies and makes no network calls.

Scoped API keys

Restrict each key to specific render targets for least-privilege access. (Cloud)

Three official SDKs

JavaScript/TypeScript, Python and PHP, with matching feature sets. (Cloud)

Supported render targets

Target Value Use case

HTML

"html"

Any transactional or marketing email service — Resend, Postmark, SES, SendGrid, or your own MTA.

MJML

"mjml"

Teams with an existing MJML toolchain.

React Email

"react-email"

Next.js and other React-based email pipelines. Produces .tsx source.

JSON

The portable template document. This is what you store. (Editor export only)

Store the JSON, not the HTML. HTML is a build artifact — you will want to regenerate it with a newer engine one day, and a stored HTML blob cannot be re-rendered for a different recipient.

Packages

Package What it does Version

@maildeno/editor

The drag-and-drop editor as an embeddable component. React, Vue, Angular, Svelte, or plain HTML.

0.4.9

@maildeno/renderer

Renders a template to HTML, MJML or React Email — offline, in any runtime.

0.2.0

maildeno

The hosted SDK — fetches templates by ID and renders them in-process.

2.1.0

Need help?