Unlayer
UNLAYER ELEMENTS

Build email, web, and PDF
in code.

Write content as familiar React components. Render it to email-safe HTML, responsive web, or print-ready PDF, from the same component library.

TSXInvoiceEmail.tsx
import { Section, Heading, Text, Button, renderToHtml } from '@unlayer/elements';

export function InvoiceNotification({ invoice, user }) {
  return (
    <Section padding="32px" backgroundColor="#09090b">
      <Heading level={1}>Invoice for {user.name}</Heading>
      <Text>Amount due: {invoice.total}</Text>
      <Button href={invoice.paymentUrl}>Pay Invoice →</Button>
    </Section>
  );
}
Simultaneous Targets3 Targets Synchronized
Target 1: Email HTML
Table-nested, Outlook VML compatible, zero external CSS
Verified
Target 2: Responsive Web
Clean semantic HTML5 + CSS Grid container queries
Verified
Target 3: Print-Ready PDF
Exact page margins, page numbering, CMYK vector curves
Verified
ENGINEERING FIRST

Built for engineering teams.

Zero friction, type-safe components with round-trip visual canvas serialization.

01

Framework-Native

Import familiar JSX or template components for React, Angular, Vue, and vanilla TypeScript.

02

Three Render Modes

Compile one component tree into email-safe table HTML, responsive web DOM, or print-ready PDF.

03

TypeScript-First

Full type definitions for layout props, styling tokens, dynamic merge variables, and event payloads.

04

Tiny Bundle

Lightweight runtime optimized for server-side rendering in Node, Next.js, Bun, and edge workers.

05

Clean HTML Output

No bloated nested tags or brittle inline scripts. Produces minified, compliant code.

06

JSON Round-Trip

Seamlessly serialize between React component trees and Unlayer visual editor JSON schemas.

LAUNCH IN DAYS, NOT YEARS

Ready to embed content creation
into your app?

Start your 14-day free trial today, or schedule a technical walkthrough with our solutions engineers to see Unlayer running inside your stack.

No credit card requiredSOC 2 Type II14-day full access