Migrate › Postmark

Move from Postmark to Relayly

Postmark is a respected transactional shop. The migration question is rarely about deliverability — it's about whether you can keep growing without buying a second tool for marketing email.

Why teams leave Postmark

What carries across

Postmark conceptRelayly equivalentAuto-migrates?
ServersSub-accountsYes — Scale tier and above. 1:1 mapping.
Message StreamsTagged sends + classificationStreams become tag-based send classification on our side.
Templates (Mustache)Liquid templatesAuto-translation handles the common cases.
Suppression listSuppressionsYes — bounces, spam complaints, unsubs.
Outbound API logsRead-only archiveOptional. Search remains available for 90 days.
Inbound webhooksInbound routesYes — same parsed payload structure.

The codebase swap

API shapes are similar enough that find/replace handles most call sites. The key differences:

// Postmark Node SDK
import { ServerClient } from "postmark";
const client = new ServerClient(process.env.POSTMARK_TOKEN);

await client.sendEmail({
  From:     "hello@yourdomain.com",
  To:       "user@example.com",
  Subject:  "Welcome",
  HtmlBody: "<p>Hi</p>",
});
// Relayly Node SDK
import Relayly from "@relayly/node";
const r = new Relayly({ apiKey: process.env.RELAYLY_API_KEY });

await r.email.send({
  from:    { email: "hello@yourdomain.com" },
  to:      [{ email: "user@example.com" }],
  subject: "Welcome",
  html:    "<p>Hi</p>",
});

Message Streams → Tags

Postmark's Message Streams (transactional vs broadcast) split your account into distinct sending tracks. Relayly uses tags + auto-classification to achieve the same effect — sends with a broadcast tag automatically route through the marketing-grade IP pool, transactional sends through the priority pool.

The migrator transcribes your stream IDs to tag conventions. Most teams keep the same names: outbound, broadcast, marketing.

The cutover playbook

  1. Run the export script. It's read-only against Postmark and re-runnable.
  2. Review the manifest. Anything flagged as "needs review" gets a copy-paste remediation snippet.
  3. Apply to Relayly. Idempotent SQL + REST imports. Re-run safely.
  4. Dual-send for a week. Compare inbox rates at Gmail / O365 / Yahoo through the dashboard.
  5. Flip the API key. Search-and-replace your codebase, deploy, monitor 24h.
  6. Pause Postmark. Don't delete the account — keep it for 30 days as an unsubscribe-list reciprocity reference.
  7. After 30 quiet days, terminate Postmark. You're done.

Pricing-side check

VolumePostmarkRelaylyAnnual delta
10k sends/mo$15/mo$25/mo− $120/year
50k sends/mo$50/mo$25/mo+ $300/year
300k sends/mo$200/mo$100/mo+ $1,200/year
1M sends/mo + EU residencyNot available$130/moEU residency unblocked

Postmark pricing as of 2026-05 from postmarkapp.com/pricing. Postmark is cheaper at the lowest tier; Relayly takes over from ~30k/mo and the gap widens at higher volume.

Start the migration

Sign up free, run the export script, dual-send for a week. We'll spot you 10,000 verification sends.

Start free