Mailcheap, self-hosted newsletter on Amazon SES

Self-hosted newsletter on Amazon SES. Write an issue, send it to your list, publish an archive, and pay about $0.10 per 1,000 emails with no per-subscriber fee.

Mailcheap, self-hosted newsletter on Amazon SES — code freebie
Home
Freebies

Mailcheap, self-hosted newsletter on Amazon SES

You write an issue. You hit send. Somewhere between the draft and the reader, a newsletter platform bills you for every subscriber on your list, whether or not that subscriber opens anything. Mailcheap moves the whole newsletter onto your own Amazon SES account, so you pay for the emails you send and keep the list in your own database.

What Mailcheap actually does

Mailcheap is a self-hosted newsletter app you deploy once. It holds an editor, a contact list, signup forms, unsubscribe handling and a public archive. You write a campaign, send it to your contacts through SES, and publish the same issue as a web page. One admin runs the whole thing. No teams, no seat upgrades, no plans that scale with your subscriber count.

It is a one-time open source release by Marc Lou, MIT licensed. The README is direct about the trade: issues are closed and setup questions go unanswered. You fork it and deploy it, then make it yours. That fits a builder who prefers to own the stack and read the code instead of filing a ticket.

Why subscriber pricing hurts as your list grows

Managed platforms price on how many subscribers you keep. A 10,000-name list costs the same on the first of the month whether you sent one issue or four. Your bill grows with your audience, and your audience is the whole point of the work.

Amazon SES prices on what you send. The README runs the numbers plainly: 10,000 readers and four issues a month is 40,000 emails, which lands near $4 at about $0.10 per 1,000 emails. The rest of the stack has free tiers for a newsletter that size, MongoDB Atlas for storage and Upstash QStash for scheduling. The saving is not because the software is worse, it is because the pricing follows usage instead of headcount.

☞ The saving comes from the billing model. You pay for the emails you send, so a quiet month costs less than a busy one.

How sending works under the hood

A send picks the audience first. Active contacts go out, suppressions stay in, and the most engaged readers are ordered to the front so a fresh domain warms up on people who actually open. The app turns that list into one message per reader and queues a QStash job for each batch of 50.

Each job hands the batch to the SES v2 API at the rate you set, between 1 and 14 emails a second, and 10 by default. If bounces pass 2% or complaints pass 0.08%, the job pauses the campaign on its own before the next batch goes out. SES publishes its events to an SNS topic, which posts them to the app. The app checks the SNS signature, updates the message and the campaign stats, plus the contact, then adds bounced and complaining addresses to a suppression list shared by every newsletter on the install.

What ships in the box

The package covers the jobs a newsletter actually needs:

  • ❶ An editor with a live email preview and slash commands, plus image uploads, with Markdown and raw HTML when you want them
  • ❷ Checks before every send: subject, preview text, unsubscribe link, size under Gmail’s 100 KB clip, postal address and a verified domain
  • ❸ Test emails and scheduling, plus sending in steps that start with your most engaged readers
  • ❹ Several newsletters in one install, each with its own from address, reply-to and postal address
  • ❺ A signup form on each archive, plus a signup API with API keys
  • ❻ Confirmed opt-in per newsletter, a welcome email, and rate limits on signups and the API
  • ❼ A public archive per newsletter with issue pages and a sitemap, plus an author page and share images
  • ❽ A contacts view with search and status filters, plus CSV import from any platform
  • ❾ A domains page that shows each SES identity’s DKIM and MAIL FROM status with the DNS records to add

One Next.js app wired to MongoDB and SES runs all of it. The dashboard has a single login, and the contact list never leaves your database.

The health checks that keep you out of the spam folder

Deliverability is where most self-hosted senders get burned, so Mailcheap builds the guardrails in. SES publishes deliveries and complaints to an SNS topic; Mailcheap verifies the SNS signature before it trusts any of it.

The guardrails worth knowing about:

→ Suppression is shared across every newsletter, so one bad address cannot be emailed twice

→ A send pauses itself once complaints pass 0.08% or bounces pass 2%

→ Every email carries one-click unsubscribe headers per RFC 8058 with signed links, which Gmail and Yahoo expect from bulk senders

→ List cleanup is off by default and can ask readers who ignored several issues whether they still want the list, then stop

Open and click tracking runs on your own domain. Clicks within 30 seconds of the send, or from known link scanners, do not count.

Setting it up in an afternoon

Setup takes about an hour, and most of that hour is waiting for DNS and for AWS to approve production access. Four moving parts:

  • ❶ A MongoDB cluster holding your contacts and campaigns
  • ❷ An SES sending domain with DKIM and a custom MAIL FROM domain
  • ❸ A QStash token for background sending
  • ❹ A host, on Vercel or any Node.js server

From there it is four values in Vercel, a verified domain in SES and a QStash token. The README walks through the DNS records line by line. Sending stays off until you flip SENDING_ENABLED to true, so nothing can leak out during setup. If you would rather not manage any of it, the solo founder tech stack is a good place to see which pieces a small team runs on purpose.

Frequently asked questions

Do I need to code to run it?

No. You need to paste four values into Vercel and copy some DNS records, and the README labels each one. If you can follow a hosting tutorial, you can ship this. Reading code only helps when you want to change how it works.

What does it actually cost to run?

SES charges about $0.10 per 1,000 emails. MongoDB and QStash have free tiers that cover a list of a few thousand readers, and Vercel’s free tier does too. The costs grow with how much you send, not with how many people are on your list.

Is my subscriber list safe?

The list lives in your own MongoDB database, not on a newsletter platform you do not control. Sessions and email links are signed with a secret you generate, and the app ships its own security document. Export the whole list to CSV whenever you want.

Can I use Mailcheap for commercial newsletters?

Yes. It is MIT licensed, so you use it for personal and commercial work without paying anyone or asking permission. You supply your own SES account and domain.

Why it belongs in your stack

When your list is the asset, owning the list matters. Mailcheap gives you a newsletter that keeps contacts in your database, sends on a price that tracks usage, and publishes an archive you control. You trade a managed platform for a little setup and a clear bill.

☛ Everything runs as a single Next.js app. There is no per-seat bill to watch, and the contact list exports to CSV on any day you decide to leave.

It pairs with the reading on this site. The guide on enhancing email security covers the authentication side, and visual elements in email marketing covers the design side of the issues you will send. When you have a list and no signups yet, the note on getting your first startup users rounds out the funnel. When you want the rest of the interface to match the app you send from, the other free code resources and design and code kits are built for the same fast, solo workflow.

More Figma freebies

Compositor — free Photoshop alternative for macOS

Code

Compositor — free Photoshop alternative for macOS

Free and open source Photoshop alternative for macOS. Layers, masks, PSD import, and a project format any AI agent can read and write.

Liquid Glass for React

Code

Liquid Glass for React

Glass surfaces and controls for React on the web and in Electron. Clear and Regular materials refract live content, and every control runs on Base UI behavior.

REA — reverse engineering MCP for AI agents

Code

REA — reverse engineering MCP for AI agents

Give your AI agent an MCP server that reverse engineers any app: native binaries, Electron, .NET, APKs, and websites. Analysis runs locally, MIT licensed.

FSearch — whole-disk file search for macOS

Code

FSearch — whole-disk file search for macOS

Find any file on your Mac in about a millisecond, typos included, and search inside text files. Whole-disk index in Rust, MIT licensed, one small daemon.

@sfinterface/numbers — rolling numbers for React

Code

@sfinterface/numbers — rolling numbers for React

React component that turns only the digits that changed. 13 kB, no dependencies, Intl formatting, five transitions, and reduced-motion support.

RuneIcons — open source icon set for modern UIs

Components

RuneIcons — open source icon set for modern UIs

Thousands of clean, consistent SVG icons for web and app interfaces. Open source, MIT licensed, and ready to drop into Figma, React, or plain HTML today.

Amicro — micro-interactions for any landing page

Code

Amicro — micro-interactions for any landing page

Open source collection of ready-made micro-interactions: hover glow, magnetic buttons, scroll reveals. Copy a snippet, paste into any page, ship motion today.

M3E Canvas — Material 3 Expressive UI builder

Code

M3E Canvas — Material 3 Expressive UI builder

Assemble Material 3 Expressive interfaces in your browser and export a ready-to-use prompt for AI. Open source, free, and built for Android vibe coding.

Driver.js — product tours & onboarding

Code

Driver.js — product tours & onboarding

Lightweight, vanilla JavaScript library for building powerful product tours, feature highlights, and contextual onboarding. No dependencies, just 5kb gzipped, fully customizable and accessible by default.

pdfcn — PDF viewer component for React

Code

pdfcn — PDF viewer component for React

Open source PDF viewer built on the shadcn stack. Renders documents inside your React app with zoom, search, and navigation. No iframe, no vendor lock-in, MIT license.

Free invoice template for Figma

Components

Free invoice template for Figma

Clear and simple table-based document for your business purposes. Powered by editable data grid, which is easy to manage.

Avatar UI design templates & tips

Components

Avatar UI design templates & tips

A part of the upcomong design handbook «The State of Component». Colors, Styles & UI design for Avatar. Events, States and Actions. Including layout samples for inspiration.

App Bar UI design templates & tips

Components

App Bar UI design templates & tips

Application Bar (aka Navigation Bar) — displays prior in-app controls related to the current app section. This freebie contains things to consider when designing App Bars.

Fonts Playground

Global Styles

Fonts Playground

Best web fonts precisely handpicked and optimised for better web legibility and ready to implement into your Figma project.

Website Template

Web Design

Website Template

Landing page template made for Figma. Contains styled components UI kit, desktop & mobile versions. Global styles, Inter, FlatUI colors.

Android UI kit

Mobile Templates

Android UI kit

8 mobile app templates based on popular Android UI design patterns: Calendar, Cards, Tasks, Kanban & Project management and more.

Figma iOS UI kit

Mobile Templates

Figma iOS UI kit

iOS native components and app templates organised into a «Most Design System» fully compatible with Human Interface guidelines.

Material X Starter

Mobile & Desktop

Material X Starter

Top-notch styled components in the design system powered by Auto-layout. Ready-to-use Figma UI kit with styles from the nearest future.

Radar Chart

Data visualization

Radar Chart

Radar chart template made of components and available within a range of popular viewports: desktop, tablet and mobile. Light & Dark.

Rome UI kit lite

Mobile & Desktop

Rome UI kit lite

Components & templates for desktop & mobile apps. Powered by clean and trendy custom guidelines and DM Sans font (OFL).

Xela UI kit starter

Mobile & Desktop

Xela UI kit starter

100+ variants of several components to craft perfectly shaped desktop & mobile apps. Modern styleguides and free Nunito Sans font.

Free iOS UI kit

Mobile Templates

Free iOS UI kit

Customisable & adjustable mobile design system with 100+ variants for a set of components and 8 ready-to-use app layouts to try out.

Mobile-X UI kit

Mobile Templates

Mobile-X UI kit

Meet Mobile-X Figma design system for mobile app design. Cross-compatible & stylish UI kit which fits both iOS / Android apps.

Accordion guide

Tutorials & Education

Accordion guide

The exploration for Accordion component: styles, states, samples, and use cases for desktop & mobile viewports.

Eclipse UI kit

Mobile & Desktop

Eclipse UI kit

Fine components fully loaded with variants, auto-layout, global text & color styles. Hi-end customizable Figma design system (starter).

Appka iOS UI kit

Mobile Templates

Appka iOS UI kit

Appka is a fine-themed & customized iOS design system with 4100+ variants for 28 components and 280+ ready-to-use app layouts for Figma.

Nav templates

Mobile & Desktop

Nav templates

This design resource represents navigation components. It contains sidebars, drawers and headers both in light & dark modes.

Dark charts UI kit

Chart Templates

Dark charts UI kit

Try out this handy source of graphs for your next dashboard, pitch, or even print materials. Contains most common dark chart templates.

Figma email templates

Email Templates

Figma email templates

Five awesome and scalable free email templates to engage your subscribers. Dark & light themes. Contains buttons, lists and cards.

Charts widgets dark & light

Chart Templates

Charts widgets dark & light

Line & Wave charts, Bars, Histograms, Ratings and more graphs widgets are available in this free Figma resource. For dashboards, mobile & desktop.

Shopping layout for web app

Desktop

Shopping layout for web app

Contains navigation, filtering components, tabs, cards and more. This layout was made with Angular and fully coded.

Orion dark templates

Data visualization

Orion dark templates

Figma library with 40+ desktop charts templates served in light & dark themes. Contains 200+ of dataviz widgets for every case.

Responsive imagery cards

Card Templates

Responsive imagery cards

A variety of responsive cards templates for Figma. Constrained and scalable. Made with global styles for typography and colors.

Landing page & web blocks

Web Design

Landing page & web blocks

Use given blocks as a quickstarter for your very next web design mission. This freebie contains 3 landing pages for desktop, tablet & mobile.

Mobile tables several themes

Mobile Templates

Mobile tables several themes

Components-driven iOS layouts with data grid made from one singe cell. Based on different styles. Allows to create better tables in Figma.

12 free mobile templates

Mobile Templates

12 free mobile templates

Use our Full iOS design system as the starter for your next mobile app. This freebie includes 12 screens dark & light powered by 200+ components.

Calendars & Date picker templates

Mobile & Desktop

Calendars & Date picker templates

UI design resource with 56 calendars extracted from our popular UI kits. All the best samples of schedule patterns, planners, event managers.

Schedule & Events template

Desktop

Schedule & Events template

This clean calendar template has been made of a scalable grid, accurately made with colored items and wrapped for the desktop.

Material You for web apps

Mobile & Desktop

Material You for web apps

Figma Material Design 3 starter fully loaded with several desktop & mobile templates (with dark themes) and a bundle of components.

iOS Datepickers

Tutorials & Education

iOS Datepickers

Stand out with our Figma iOS date picker. Offering a true-to-life isometric design and easy-to-edit text, it's the most realistic option.

Segment UI kit

Mobile Templates

Segment UI kit

Design stunning Android apps with our free Figma UI kit. Follow Android guidelines and components and use our fonts, colors, and templates.

Figma React UI kit

Design & Code

Figma React UI kit

Our Figma React UI kit 2-in-1 makes web app building faster. Created in Figma, exported to React, and customised with Blueprint.js library.

Messenger app desktop template

Desktop

Messenger app desktop template

Effortlessly create world-class communication design with our Messenger Template for Figma. With dark and light mode options.

Zeus UI free website template

Web Design

Zeus UI free website template

Zeus Web UI kit-inspired landing page template. Supports all viewports, card-driven UX, polished with Syne and Space Grotesk fonts.

Design system starter

Global Styles

Design system starter

Launch your project with confidence thanks to our Figma design system. Customize grids, text, color, gradients, and shadows with ease.

Navigation layout 4 samples

Mobile & Desktop

Navigation layout 4 samples

Sleek Navigation Menu for Material X design system in Figma. Various sizes and design options. Features badges and active state highlight.

Chart cards

Data visualization

Chart cards

Make your data pop with our easy-to-use Charts UI kit. Featuring bar charts and heatmaps, it's perfect for dataviz, dashboard, pitches and others.

Material UI styled

Mobile & Desktop

Material UI styled

New and improved Material UI Kit, refreshed with enhanced material.io guidelines. Free and ready-to-use components included.

Hyper charts

Data visualization

Hyper charts

Transform your data into captivating visuals with several Figma's chart templates based on Hyper Charts kit. You'll find 8 editable widgets inside.

Search inputs

Components

Search inputs

Explore how Figma inputs are revolutionizing search interface design. Gain key insights to enhance user experience with impeccable UIs.

Figma Grid Layouts

Grid Layouts

Figma Grid Layouts

This template is designed to help you create templates that are beautifully balanced. Features both mobile and desktop layouts with 16/24 gutters.

Panda dashboard template

Desktop

Panda dashboard template

Build sleek dashboards with our Panda UI kit starter! Featuring a 1920w desktop template, UI widgets, and components.

Orion dataviz templates

Dashboard Templates

Orion dataviz templates

The design system starter for your next application. This resource contains 6 dashboard templates and a bundle of UI design widgets.

Subscribe to Setproduct

Once per week we send a newsletter with new releases, freebies and blog publications

By clicking Sign Up you're confirming that you agree with our Terms and Conditions.