AI NewsOpen sourceAnnouncement
Mailcheap is a self-hosted newsletter app on Amazon SES
Mailcheap is a new MIT-licensed Next.js app that sends newsletters through a user's own Amazon SES account at the SES list price of $0.10 per 1,000 emails, and the repository has gained 301 stars on its first day.
Image: GitHub
Why it mattersA writer who already pays a per-subscriber newsletter platform can send the same list through SES for the price of the emails they actually send, and keep the subscriber list in a database they control.
A paid newsletter platform charges for every subscriber on the list, every month, whether that reader opens any issue or not. Mailcheap, published on GitHub today by the developer marclou, bills a sender for the emails they actually send: $0.10 per 1,000 through a user's own Amazon SES account, which is SES's own list price. The repository has gained 301 stars on its first day and is MIT-licensed.
The project is a single Next.js app that holds the parts of a newsletter a plain SES account does not. The author describes it as "a one-time open-source release" with issues turned off and no support for setup questions. The design brief: fork, deploy, run it on your own account, keep the list in your own database.
What is in the app
The admin side carries an editor with slash commands, image uploads, a live email preview and raw HTML or Markdown input. Before each send Mailcheap checks the subject, the preview text, the unsubscribe link, the body size against Gmail's 100 KB clip limit, the postal address and the verified sending domain. Sends run in batches through Upstash QStash at the sender's chosen rate, and an operator can start with the most engaged readers and expand to the full list from there.
The list side carries a signup API with keys, confirmed opt-in that is off by default, rate limits for signup and unsubscribe, and a public archive for each newsletter with its own author page, share images and sitemap. A dashboard shows subscribers over time, emails per hour and the delivery, open, click, bounce and complaint rates, broken out by mailbox provider.
How it keeps a list healthy
Amazon SES suspends an account whose complaint or bounce rates run high, and Mailcheap pauses a send on its own account when bounces pass 2% or complaints pass 0.08%. The project reads SES event streams for deliveries, bounces and complaints into a suppression list that every newsletter in the install shares. One-click unsubscribe sits behind signed links and the RFC 8058 List-Unsubscribe header that Gmail and Yahoo now require from bulk senders. List cleanup is off by default, and when switched on sends a single "do you still want this?" email to readers who have ignored several issues.
A 10,000-reader list sending four issues a month is 40,000 emails, which at the SES $0.10 per 1,000 price is $4 of sending costs. The dashboard runs on MongoDB Atlas and a Node.js host, each of which the author lists on a free tier for a small list. The setup section walks through verifying a domain in SES and asking Amazon to lift the sandbox limit, which the author estimates at an hour of elapsed time, most of it waiting on DNS and on Amazon's review.
A newsletter is one of the simplest paid services with a per-subscriber tier, so a self-hosted drop-in built on the sending account a team already has produces a visible saving at list sizes that have grown past a free plan. The two trade-offs are both named in the README: nobody will answer a setup question, and the operator is responsible for the SES account's reputation. A team that has done both before gets a newsletter app that stops charging as the list grows.
Source
Primary source: marclou/mailcheap on GitHub.
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.