Product
A real editor under the AI.
Chat gets you a strong first draft in seconds. Then a full block editor lets you shape every pixel — and ship HTML that holds up in real inboxes.
AI & sequences
Draft a whole sequence, not just one email
Describe the goal, audience, and voice. The assistant streams back a structured draft — real blocks you can edit — and can plan multi-step onboarding and lifecycle flows in one pass.
- Streaming responses over server-sent events — watch the draft build.
- Prompt-to-template, plus copy, layout, and style suggestions on demand.
- Import a brand from a URL or generate imagery when you need it.
Embed
An editor you mount, not a tool you visit
The same editor your users would get in a dashboard, living inside your product: your branding via CSS variable overrides, your storage via upload callbacks, your login via session tokens. Ten lines, one div, no iframe plumbing of your own.
- Your branding — CSS variable overrides, runtime theme switching.
- Your storage — upload / delete / list callbacks route to your own bucket.
- Your auth — short-lived session tokens minted by your backend.
editor.ts
import { init } from "dezignee-plugin"
const editor = await init({
id: "editor",
sessionToken,
chatEnabled: true,
})Visual block editor
Drag, select, and fine-tune every block
Under the chat is a true visual editor on a dot-grid canvas. Build with rows and columns of typed blocks, and adjust type, color, spacing, and alignment with predictable controls.
- Six block types compose any layout — no raw tables or inline styles.
- Select a block to edit its properties; empty columns read “No content yet”.
- Manual edits and AI edits run through the same command pipeline.
Personalization
Merge tags everywhere you need them
Drop personalization tokens into subjects, body copy, and links. Preview mode swaps in sample values so you can read the email exactly as a recipient will.
- Use {{ first_name }}-style tokens across every text field and URL.
- Preview with sample data before you export or send.
- Tokens survive export untouched for your ESP to fill in.
Email-safe export
HTML built for real inboxes
Export is backend-authoritative: predictable, table-based markup with inline styles and Outlook (MSO) fallbacks — so what you design renders the same from Gmail to Outlook.
- Table-based layout with inline styles — no surprises across clients.
- MSO conditional fallbacks for Outlook’s rendering engine.
- Non-blocking validation flags issues before you ship.
export-html
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td style="padding:24px;font-family:Arial,sans-serif;">
<h1 style="margin:0 0 12px;font-size:24px;">Welcome aboard.</h1>
<!--[if mso]><table role="presentation"><tr><td><![endif]-->
<a href="{{ cta_url }}"
style="display:inline-block;padding:12px 18px;
background:#2A2823;color:#ffffff;border-radius:8px;">
Get started
</a>
<!--[if mso]></td></tr></table><![endif]-->
</td>
</tr>
</table>For platforms
Built for multi-tenant products.
The single most important fact for a platform embedding this for many customers: tenancy is enforced at the API level, and you can stay in sync without polling.
Workspaces
workspaceId is the isolation boundary, enforced at the API level. One per customer, and a session token cannot reach across them.
Webhooks + audit events
Know when a document changes without polling; audit events for your own compliance review.
Also included
The rest of the toolkit.
Asset library
Upload to Dezignee-hosted storage or wire your own S3 bucket via an asset adapter.
Version history
Every command is versioned. Roll back a template or compare against an earlier draft.
See it build an email in real time.
Start free and draft your first campaign in minutes — no credit card.