Help

Before you install.

Have these essentials ready before setting up Newsletter Sender. Check these off first, and the rest of the installation takes less than five minutes.

1Checklist: what you'll need

You will need five core prerequisites:

  • A Cloudflare account to host and run Newsletter Sender.
  • A custom domain (e.g. yourdomain.com) to send from.
  • A sender email address on your domain (e.g. news@yourdomain.com).
  • A sending provider: an Amazon AWS account for Amazon SES (recommended), or an account with Postmark, Mailgun, Brevo or Resend.
  • A free GitHub account, so the Deploy to Cloudflare button can make your own copy.

2Cloudflare account

Newsletter Sender runs entirely on your own Cloudflare account as a Worker paired with a database, queue and file storage. Your subscribers, drafts and stats stay in your hands.

  1. Sign up or log in at dash.cloudflare.com. Any standard Cloudflare account works, including one currently hosting your website.
  2. Upgrade to the Workers Paid plan ($5 a month under Workers & Pages → Plans). Sending needs this plan: the free tier stops each run after a few milliseconds, which isn't enough to send batches of email. The paid tier comfortably covers millions of requests a month.
Domain on Cloudflare? If your domain's DNS is already hosted on Cloudflare, adding the records Amazon SES needs takes just a couple of clicks. Any other DNS provider works as well.

3Custom domain and sender address

Newsletters are sent from your own authenticated domain. Sending providers check you own the domain, using DNS records, before they send anything.

  1. Choose your sender address: pick your campaign From address (e.g. news@yourdomain.com or hello@yourdomain.com).
  2. Make sure you have DNS access: you'll need to edit DNS records at your domain registrar or DNS host.
  3. Set up replies: make sure your chosen address (or a separate Reply to address) goes to an inbox you read, so you can handle subscriber replies.
Already sending email from your domain? That's fine. Newsletter Sender sends bounces and spam notices through its own bounce. subdomain, so your normal day to day inbox isn't affected.

4Sending provider

Newsletter Sender doesn't deliver emails directly. It sends them through the provider you choose. You pay the provider directly at cost, with no markup and no per subscriber pricing.

ProviderWhat you'll needGuide
Amazon SES (recommended)An active AWS account (needs a payment card on file)Set up Amazon SES →
PostmarkA Postmark account and server tokenSet up Postmark →
MailgunA Mailgun account with your domain addedSet up Mailgun →
BrevoA Brevo account with your domain authenticatedSet up Brevo →
ResendA Resend account with your domain verifiedSet up Resend →
New Amazon SES accounts start in the sandbox. Until Amazon reviews and approves production access, you can only send to verified addresses. Asking takes a few minutes and is usually approved within 24 hours. Follow our Amazon SES guide to apply early.

5How you'll install it

Click the button and Cloudflare does the rest. It copies Newsletter Sender into your own GitHub account, creates the database, send queue and file storage in your Cloudflare account, and puts it live. After that, updates are one click under Settings → Account.

Deploy to Cloudflare

  1. Click Deploy to Cloudflare and sign in to Cloudflare.
  2. Connect your GitHub account when asked. Cloudflare makes your own copy there, so you own the code too.
  3. Make an admin secret key for SETUP_TOKEN: at least 20 random letters and numbers. You'll need it to set up your admin account and to reset your password if you ever need to. Store it in your password manager.
  4. Choose your Git account, then click Deploy and wait a minute or two. Leave the other names Cloudflare suggests as they are.
  5. Open https://<your Newsletter Sender address>/setup?code=<your key> to create your admin account. Cloudflare shows your address (ending workers.dev) when it's finished. You can add your own domain later.
Prefer the command line? You can install from your own computer instead, with Node.js 22 or newer and Git. The steps are in the README on GitHub.
Prefer it done for you? I can install it, set up your sending provider and move your subscribers across for you. Get in touch →

6Nice to have (optional)

  • Cloudflare Email Sending: sends sign up confirmations and welcome emails separately from your newsletters. Set up your domain under Email, Email Sending in Cloudflare.
  • Cloudflare Turnstile: free bot protection for your sign up forms and admin sign in.
  • Your subscribers as a CSV file, if you're moving from Mailchimp, Sendy, Substack or Kit. Unsubscribed, bounced and complained contacts are left out automatically when you import.