Skip to main content

How to Migrate from Mailchimp to Listmonk

·OSSAlt Team
mailchimplistmonkmigrationnewsletterguide

How to Migrate from Mailchimp to Listmonk

Mailchimp's free plan now limits you to 500 contacts. Paid plans start at $13/month and scale to $350+/month for larger lists. Listmonk is a blazing-fast, self-hosted newsletter manager that handles millions of subscribers on a $5 VPS.

Step 1: Export from Mailchimp

  1. Go to AudienceAll contacts
  2. Click Export AudienceExport as CSV
  3. Download the CSV file

The export includes: email, name, subscription status, tags, merge fields, signup date.

Step 2: Deploy Listmonk

# Docker — running in 2 minutes
mkdir listmonk && cd listmonk

# Download config
curl -o config.toml https://raw.githubusercontent.com/knadh/listmonk/master/config.toml.sample
curl -o docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml

# Edit config.toml with your SMTP settings
# Start
docker compose up -d

# Initialize database
docker compose run --rm app ./listmonk --install

Access at localhost:9000 — default login: listmonk / listmonk.

Step 3: Configure SMTP

You need an SMTP provider to send emails. Options:

ProviderFree TierCost at Scale
Amazon SES62K emails/month (free tier)$0.10/1000 emails
Resend3K emails/month$20/month for 50K
SendGrid100 emails/day$15/month for 50K
Mailgun1K emails/month$15/month for 50K
Brevo300 emails/day$9/month for 5K/day

Configure in Listmonk → SettingsSMTP:

[smtp]
host = "email-smtp.us-east-1.amazonaws.com"
port = 587
auth_protocol = "login"
username = "YOUR_SES_KEY"
password = "YOUR_SES_SECRET"
tls_type = "STARTTLS"

Step 4: Import Subscribers

  1. Go to Listmonk → SubscribersImport
  2. Upload your Mailchimp CSV
  3. Map columns: email → email, name fields → name
  4. Select the mailing list to add subscribers to
  5. Choose: Subscribe (active) or Block listed (unsubscribed)

Important: Only import subscribers who are subscribed (status = "subscribed" in the CSV). Don't import unsubscribed users.

Step 5: Create Templates

Listmonk supports HTML templates with Go templating:

<!-- Simple newsletter template -->
<html>
<body style="font-family: sans-serif; max-width: 600px; margin: 0 auto;">
  <h1>{{ .Subject }}</h1>
  {{ .Body }}
  <hr>
  <p style="font-size: 12px; color: #666;">
    <a href="{{ .UnsubscribeURL }}">Unsubscribe</a>
  </p>
</body>
</html>

Step 6: Recreate Automations

Mailchimp FeatureListmonk Equivalent
Welcome emailCampaign with "on subscribe" trigger
Regular campaignsCampaigns (manual send)
A/B testingNot available (manual approach)
Audience segmentsLists + SQL-based segments
TagsSubscriber attributes (JSON)
TemplatesHTML templates
AnalyticsOpen/click tracking
Landing pagesNot included (use external)

Step 7: Set Up DNS Records

Configure for deliverability:

# SPF
v=spf1 include:amazonses.com ~all

# DKIM — from your SMTP provider
# DMARC
_dmarc.yourdomain.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com"

Cost Comparison

SubscribersMailchimpListmonk + SESSavings
1,000$13/month$5/month (VPS)$96/year
5,000$60/month$6/month$648/year
10,000$100/month$7/month$1,116/year
50,000$350/month$10/month$4,080/year
100,000$800/month$15/month$9,420/year

Listmonk cost = VPS + SES sending fees (~$0.10/1000 emails)

What You'll Lose

  • Drag-and-drop email builder — Listmonk uses HTML templates
  • A/B testing — not built-in
  • Landing pages — not included
  • Pre-built automations — limited automation support
  • Audience insights/predictions — not available

What You'll Gain

  • No subscriber limits — handle millions
  • No sending limits — limited only by SMTP provider
  • Full data ownership — subscribers on your server
  • Blazing performance — Go binary, 50 MB RAM
  • SQL-powered segments — more powerful than Mailchimp's UI
  • $0 software cost — just hosting + SMTP

Compare newsletter tools on OSSAlt — features, deliverability, and self-hosting options side by side.