DeckleDocs
Dashboard

Marketing

Template gallery

A built-in library of high-quality, deliverability-safe email templates you can brand, preview, and export — or send by id straight from the API.

Every Deckle project ships with a gallery of ready-made templates. Pick one, let your brand kit apply automatically, and either send it by id or export the markup. No template starts from a blank canvas.

Open Templates in the dashboard top-nav to browse dozens of embedded templates authored with React Email. Each one renders to clean, inline-CSS HTML with a plain-text alternative, so it lands well in real inboxes — including the clients that strip <style> tags and ignore modern CSS. The markup is deliverability-safe by construction: table-based layout, inlined styles, no external stylesheets, and no scripts.

From any card you can Use template (adds a branded copy to your project), Preview it against sample data, or Export it as HTML, a React Email component, or a copy to your clipboard. Once a template lives in your project it gets an id like tmpl_9f3c... that you can pass to the send API.

Send by id

Reference a template on a send with template: "tmpl_..." instead of raw html. Template sends are rendered with your variables and automatically get open-pixel and click tracking. See Sending with templates.
import { Deckle } from "@deckle/sdk";

const deckle = new Deckle(process.env.DECKLE_API_KEY!);

await deckle.emails.send({
  from: "Acme <hello@acme.com>",
  to: "jane@example.com",
  subject: "Welcome to Acme 👋",
  template: "tmpl_9f3c2a1b",
  variables: { first_name: "Jane" },
});

Categories#

The gallery is organized by what the email is for, so you can jump to the shape you need.

  • Transactional — receipts, magic links, password resets, and other one-to-one messages triggered by user action.
  • Onboarding — welcome emails, getting-started checklists, and setup nudges for new signups.
  • Newsletter / Content — long-form content layouts for regular sends to your audience.
  • Product — feature announcements, changelog digests, and release notes.
  • Lifecycle / Marketing — re-engagement, win-back, upgrade, and promotional campaigns.
  • Utility — plain, structural layouts to start from when you want minimal styling.

Branding#

Set your project’s brand kit once and every gallery template inherits it. That’s how a single template design fits many brands: the layout stays fixed while your colors, type, logo, and footer flow in automatically.

Brand elementApplies to
ColorsButtons, links, accents, and dividers throughout the template.
FontHeadings and body text, with email-safe fallbacks for older clients.
LogoThe header lockup at the top of the email.
FooterYour address, links, and the required unsubscribe line.

Footer and compliance

The template footer includes a visible unsubscribe link, and marketing sends add the List-Unsubscribe headers required by bulk-sender rules. See Unsubscribes.

Editor & preview#

Every template opens in an editor built for catching problems before you send. Preview a template the way recipients will actually see it:

  • Desktop and mobile — switch viewports to check that the layout reflows.
  • Light and dark inbox — preview against both inbox color schemes.
  • Sample-data variables — fill {{variable}} placeholders with sample values to see the rendered result, including {{first_name | "there"}} fallbacks.

Templates use the same {{variable}} syntax as the rest of Deckle, filled from the variables you pass on send and the contact’s stored data. Learn the full syntax in Variables & personalization.

Export#

You don’t have to send through the gallery to use it. Export any template in the format that fits your workflow:

Export as HTML

Get the fully rendered, inline-CSS HTML — ready to drop into a raw html send, another system, or version control.

Export as React Email

Get the template as a React Email component you can commit to your codebase and render yourself.

Copy

Copy the current output straight to your clipboard for a quick paste.

Raw HTML isn't instrumented

Exported HTML sent with the html field is delivered as-is — Deckle does not inject open or click tracking into raw HTML. Send by template id if you want opens and clicks tracked automatically.

A minimal template send looks the same whether the markup came from the gallery or your own React Email components:

export-send.ts
import { Deckle } from "@deckle/sdk";

const deckle = new Deckle(process.env.DECKLE_API_KEY!);

// Raw HTML exported from the gallery (not instrumented).
await deckle.emails.send({
  from: "Acme <hello@acme.com>",
  to: "jane@example.com",
  subject: "Your receipt",
  html: exportedHtml,
});

Quality checks#

The editor runs checks as you edit so a template is inbox-ready before it goes out. Deckle surfaces:

CheckWhat it catches
Spam scoreContent and markup patterns that hurt deliverability, scored so you can fix them.
Broken linksLinks that don’t resolve, so recipients never hit a dead URL.
Missing variables{{variable}} placeholders with no value and no fallback, so nothing renders empty.

Give every variable a fallback

Use {{first_name | "there"}} so a missing value renders a friendly default instead of a blank. The editor flags placeholders without one.

Next steps#