MailCheap
MailCheap is an open-source newsletter app for writing, sending, and publishing email campaigns, from the dashboard or an AI agent via its built-in MCP server. Self-host it with your own Amazon SES or PostShiba account, or use MailCheap Cloud, which runs the same code. It imports lists from Beehiiv, Substack, and Mailchimp, gives every newsletter its own website, and bakes in deliverability protections like warm-up sending, list cleanup, and Gmail spam-rate monitoring.
Overview
Description
MailCheap is an open-source newsletter app: write an issue, send it to your list, and publish it on the web, from the dashboard or from an AI agent. This repository is the whole app — self-host it with your own Amazon SES or PostShiba account, or use MailCheap Cloud, which runs the same code. You pay for the emails you send, not for dormant subscribers, at a fraction of the price of Beehiiv and similar tools.
Features
- AI agents and the dashboard: Everything the dashboard does also works from an AI agent through the built-in MCP server, or from code through the REST API, with the same checks and limits.
- Write, review, send: A rich editor with slash commands, or send Markdown or raw HTML through the API. Review flags what to fix — subject, preview text, unsubscribe link, Gmail's 100 KB clip — before you send or schedule.
- Imports from Beehiiv, Substack, and Mailchimp: CSV exports from those plus Kit, MailerLite, Buttondown, Ghost, and EmailOctopus import as-is, with each reader's status and signup date.
- A website for every newsletter: A free subdomain on MailCheap Cloud or a path on your own server, with a signup form, author page, and sitemap for each issue.
- Deliverability protections: Warm-up sending, automatic list cleanup, contact validation, a shared never-email suppression list, spam/bounce limits, and Gmail spam-rate monitoring via Google Postmaster Tools.
- Sending from your own domain: DKIM, return-path, and DMARC records with built-in checks, plus one-click unsubscribe (RFC 8058) and confirmed opt-in by default.
Technology Stack
- Next.js (Node.js 22+)
- MongoDB
- Amazon SES or PostShiba for sending
- Upstash QStash for background sending/scheduling
Requirements
- A MongoDB database (Atlas free tier works)
- An Amazon SES or PostShiba account for sending
- An Upstash QStash account for background jobs
- A Node.js 22+ host (e.g. Vercel)