Platform Comparison

Transmit vs Mailchimp: Developer-First Email Without Contact-Based Pricing

Mailchimp charges you for every contact in your database, even the ones you never email. Transmit prices by volume sent. For developers sending transactional email, that difference is significant.

Mailchimp was built for marketers, not developers

Mailchimp's core product is a drag-and-drop newsletter builder designed for non-technical marketers. That is a legitimate use case, and Mailchimp serves it well. The problem comes when developers try to use it as a transactional email platform.

Transactional email (password resets, order confirmations, account notifications) requires a fast REST API, reliable deliverability, bounce handling, and predictable pricing. Mailchimp's transactional service, Mandrill, is a separate product with separate billing that is only available as a Mailchimp add-on. You cannot use Mandrill standalone. You must have a paid Mailchimp plan first.

That structural decision tells you a lot about where Mailchimp thinks transactional email sits in their product hierarchy: it is an add-on, not a core capability.

The contact-based pricing problem

Mailchimp charges based on the number of contacts in your account, not how many emails you send. At first glance, this sounds reasonable. In practice, it creates a billing model that works against developers.

Consider a typical SaaS application:

  • You have 50,000 registered users in your database
  • 30,000 of them are active and receive marketing emails monthly
  • All 50,000 receive transactional emails (password resets, invoices, notifications)

Under Mailchimp's pricing, you are billed for 50,000 contacts even if only 30,000 are on your marketing lists. Unsubscribed contacts still count toward your bill in some scenarios. Contacts who signed up years ago and never engaged still count.

You are paying for every row in your users table, not for the emails you actually send.

Transmit charges by volume. If you send 15,000 emails to 50,000 contacts, you pay for 15,000 emails. If you send a password reset to one person, you pay for one email.

Transactional email should not require two products

To send a transactional email from Mailchimp, you need:

  1. A paid Mailchimp subscription (starts at $13/mo for 500 contacts)
  2. A Mandrill add-on (billed separately in blocks of 25k emails)
  3. A separate API key and SDK for Mandrill (different from the Mailchimp API)
  4. Different documentation, different debugging tools, different suppression lists

Transmit handles both marketing campaigns and transactional sending through a single API, single dashboard, and single billing account. The same API key sends a welcome sequence and a password reset. The same suppression list covers both.

Pricing comparison

Transmit ManagedTransmit BYOKMailchimp
Pricing modelVolume (emails sent)Volume (emails sent)Contacts in account
Free tierNo free managed tier1,000/mo, no CC500 contacts, 1k/mo
Starting price$2/mo (3k emails)$9/mo$13/mo (500 contacts)
10k contacts, 50k emails/mo~$35/mo~$19/mo$110+/mo
Transactional emailIncludedIncludedMandrill add-on (extra)
Sequences (drip campaigns)YesYesIncluded (limited on lower plans)
REST APIYesYesYes (Mandrill separate)
SMTP relayYesYesYes (Mandrill)
Inbound email routingYesYesNo
Automated warmupYesYesNo
BYOK (your own AWS)NoYesNo
MCP server for AI agentsYesYesNo

When you have 100,000 contacts but send 20,000 emails

This is the exact scenario where Mailchimp's pricing stops making sense for product teams. A bootstrapped SaaS with 100,000 registered users needs to send password resets to all of them, but might only have 20,000 actively engaged newsletter subscribers.

Under Mailchimp's model, you are in the $135-$350/month range just for contact storage, before you factor in send volume. Mandrill adds on top.

With Transmit managed, 20,000 emails per month falls into the Growth tier. Your 100,000 contacts are stored in Transmit without affecting your billing tier: you pay for what you send.

REST API for developers

Transmit is designed for programmatic access. Sending a transactional email is one HTTP call:

curl -X POST https://api.xmit.sh/email/send \
  -H "Authorization: Bearer pm_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "from": "hello@yourapp.com",
    "subject": "Reset your password",
    "html": "<p>Click <a href=\"{{resetUrl}}\">here</a> to reset.</p>",
    "variables": { "resetUrl": "https://app.example.com/reset/abc123" }
  }'

Full reference: /docs/send-email

For legacy apps or third-party integrations that require SMTP, Transmit includes a full SMTP relay with the same API key as authentication.

Sequences without the plan-gating

Mailchimp's automation capabilities are real, but the more useful workflows are locked to higher pricing tiers. Multi-step automations with conditional branching require Mailchimp Standard or Premium.

Transmit's sequences let you build multi-step drip campaigns with per-step delays (minutes, hours, days) and per-contact state tracking. Enrollment can be triggered by API (for transactional sequences like onboarding flows) or automatically when a contact joins a list.

For developers building product onboarding flows, re-engagement sequences, or post-purchase drips, sequences are available without needing to upgrade to a higher plan tier first.

Inbound email routing

Mailchimp has no inbound email capability. If you want to receive replies to your campaigns or handle reply-to flows, you are on your own.

Transmit's inbound email routing lets you receive email at any address on your verified domain, then route it: store it in the dashboard, forward it to another address, post it to a webhook endpoint, or drop it. This is useful for support@ inboxes, reply tracking, and automated reply workflows.

Migrating from Mailchimp

If you are using Mailchimp for newsletters and Mandrill for transactional, the migration path is:

  1. Export your Mailchimp contact lists (CSV export from the Audience section)
  2. Create a Transmit account at /welcome
  3. Import contacts into Transmit lists
  4. Recreate your templates in Transmit (Handlebars variable syntax)
  5. Update Mandrill API calls to use the Transmit API
  6. Update SMTP credentials if you are using Mandrill SMTP

If you are only using Mailchimp for transactional (using Mandrill directly), step 3 and 4 may not apply.

The bottom line

Mailchimp is the right tool for non-technical marketers running newsletter campaigns. For developers who need a reliable transactional email API, contact-based pricing makes no sense: you should not pay for users who are stored in your database but not being emailed.

Transmit is priced by volume, ships with a clean REST API, includes transactional and marketing in one product, and does not require a separate add-on to send a password reset.

Start for free with BYOK mode and 1,000 emails per month, no credit card required.

More Comparisons

Get started in minutes

Ready to switch from Mailchimp?

Start sending with Transmit today. Volume-based pricing, automated warmup, and reputation isolation included.