Describe the email you need. Get table-based, inline-styled HTML that survives Outlook and Gmail — then send it with one API call or plain SMTP.

Frameworks with copy-paste snippets
6
DNS records, checked live
3
Automatic retries with backoff
5×

01 — AI generator

Pick a type, tone, brand color and CTA. The model returns subject, preview text, HTML and a plain-text part — sanitized before you ever see it.

postnova / generator
WelcomeOTPPassword resetInvoiceNewsletterProduct launchEvent invitePromotional
Prompt

#6D5BFFFriendlyEnglish
Generate

02 — The platform

An MVP with the boring parts done properly: auth on every route, hashed keys, encrypted secrets, queues with retries and real DNS checks.

01

AI Generator

Prompt to production HTML: table layouts, inline CSS, bulletproof buttons, a hidden preheader and a plain-text part.

Features

  • 10 template types
  • Tone, brand color, logo, CTA
  • Refine instead of restart

Built on

OpenRouterany modelJSON output

AI Generator

02

Visual Editor

Click any element in the live preview to change copy, typography, colors, spacing and links — or insert new blocks.

Features

  • Text, image, button, columns
  • Desktop + mobile preview
  • Sandboxed iframe render

Built on

no-codeHTML export

Visual Editor

03

SMTP Relay

Point any app at our relay with per-app credentials. Rotate or revoke them without redeploying anything else.

Features

  • Password shown once
  • PLAIN / LOGIN auth
  • STARTTLS in production

Built on

port 587NodemailerPHPMailer

SMTP Relay

04

Domain Auth

We generate SPF, DKIM and DMARC records, then check DNS for real — no green tick until the records resolve.

Features

  • 2048-bit DKIM keys
  • Per-record status
  • DKIM signing on send

Built on

SPFDKIMDMARC

Domain Auth

05

Campaigns

Upload a CSV, personalise with {{name}}, send yourself a test, then send now or schedule it for later.

Features

  • CSV email + name
  • Escaped merge fields
  • Daily quota checks

Built on

BullMQscheduling

Campaigns

06

Logs & Analytics

Every message gets a timeline: queued, sent, retried, bounced. Dashboards show volume, failures and usage.

Features

  • Message-ID search
  • Retry history
  • Opt-in open/click

Built on

eventswebhooks

Logs & Analytics

03 — How it works

No templates marketplace, no drag-and-drop maze. Domain, template, credentials, send — and you can see exactly what happened to every message.

  1. STEP 01

    Verify your domain

    Add one domain. Copy the SPF, DKIM and DMARC records into your DNS provider and hit “Verify DNS”. We look them up — no guessing.

  2. STEP 02

    Generate a template

    Describe the email, choose the type and brand color. Tweak anything in the visual editor, preview on desktop and mobile, save.

  3. STEP 03

    Connect your app

    Create an API key or SMTP credentials. Copy a ready snippet for React, Node.js, Python, PHP or WordPress — with notes on what to replace.

  4. STEP 04

    Send and watch

    Emails go through a Redis queue with retries and rate limits. Every message has a log, a timeline and a Message-ID you can search.

04 — SMTP & API

Use an API key from your backend, or point any framework's mailer at the relay. Same validation, quotas and logs either way.

const res = await fetch("https://your-app.com/api/email/send", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.POSTNOVA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "Acme <hello@acme.com>",
    to: "customer@example.com",
    templateId: "tmpl_welcome",
    variables: { name: "Ada" },
  }),
});

What happens to every request

  1. Your app
  2. Auth
  3. Validation
  4. Redis queue
  5. Worker
  6. SMTP
  7. Inbox

05 — Template builder

The editor works directly on the generated HTML: select an element in the preview and adjust it on the right. Try the controls below.

Blocks

Text
Image
Button
Divider
Social
Columns
Footer
◆ Northwind

Your March invoice is ready

Invoice #NW-2043 · $1,280.00 · Due April 12. Thanks for being with us.

View invoice

Northwind Ltd · 1 Harbour St · You get this because you have an account.

Selected · h1

Left · 18px · Bold

Brand color

Button radiuspill
Saves back to HTML — tables and inline styles stay intact, so what you see is what Outlook gets.

06 — Analytics

Volume, delivery, bounces and failures per day. Open and click tracking exists, but it's opt-in per campaign — off by default.

Emails · last 14 days

sample data
Sent
12,480
Delivered
12,211
Bounced
164
Failed
105

Works with the stack you already have

Copy-paste snippets for every one of these — and anything that speaks SMTP.

  • React
  • Next.js
  • Node.js
  • Python
  • Django
  • PHP
  • Laravel
  • WordPress
  • Ruby on Rails
  • Go
  • Express
  • FastAPI

07 — Pricing

Paid plans aren't live yet. The Free tier is fully functional; limits are enforced by the same quota system paid plans will use.

Free

$0

while in beta

  • 300 emails / day
  • AI generation (30 / hour)
  • 1 verified domain
  • API + SMTP relay
Start free

Starter

—

pricing soon

  • Higher daily limits
  • Multiple domains
  • Scheduled campaigns
  • Email support
Join the waitlist

Pro

—

pricing soon

  • Dedicated IP (planned)
  • Webhooks & bounce processing
  • Team members
  • Usage-based billing
Talk to us

08 — FAQ

If something here isn't clear, it probably isn't clear in the product either — tell us.

Let's send something

Your first template takes about a minute. Your first send takes one more — and you can test everything locally with Mailpit before a single real inbox sees it.