Skip to content
An open source email campaign management tool for nonprofits
JavaScript CSS Python Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
client on client side, CSV Import no longer requires 'email' to be case sens… Aug 7, 2018
config Edit deploy docs Sep 11, 2017
docs Corrected spelling mistakes (#322) Oct 4, 2019
public add local auth strategy May 25, 2018
tools Add CL program to config .env Jul 14, 2017
utility Fixed two small typos Jan 9, 2018
.babelrc Implement basic subscriber importing from csv Sep 17, 2016
.dockerignore Add support for Docker Feb 15, 2017
.env.example change .env.example as Google+ auth is now opt in May 25, 2018
.gitignore add helper script to make old instances do Google+ auth==>classical auth May 25, 2018
.osfg-dir-config.js Minor change to trigger build Aug 23, 2017
.sequelizerc Move DB from MongoDB to PostgreSQL Oct 1, 2016 Update Oct 3, 2019
Dockerfile Docker uses node v. 8.2.1 Jul 23, 2017 Update Readme (#342) Oct 4, 2019
package-lock.json on client side, CSV Import no longer requires 'email' to be case sens… Aug 7, 2018
package.json Merge pull request #283 from zhakkarn/classical_auth_strategy May 26, 2018 Dev server middleware configured in line with best practice Jul 13, 2017

Mail for Good

Join the chat at

Please be aware that Mail for Good is currently in beta.

Looking to contribute? Read our developer setup guide.

Image showing Mail 4 Good

An app for sending millions of emails as cheaply as possible. Mail for Good uses AWS Simple Email Service to send bulk emails at $0.10 per 1000 emails.

Mail for Good is fast and memory efficient, currently sending over 100 emails per second on a 1gb Digital Ocean VPS.

We've used Mail for Good to deliver newsletters to hundreds of thousands of campers per week.

Sounds good? Give it a try!


"My instance is deployed, what now?"

In you'll find how to connect, create your admin account and set up your AWS credentials allowing you to send your first blast.

What does Mail for Good do?

With Mail for Good you can:

  • Send email campaigns of unlimited size.
  • Import emails saved in CSV format.
  • Create templates to reuse for convenience when sending email campaigns.
  • Track bounce rate and other standard metrics. You can also insert tracking pixels and unsubscribe links at the click of a button.
  • Add custom fields to imported email lists such as names or cities.
  • Grant other users (limited or otherwise) permissions to use your account on your behalf.
  • Add embedded HTML newsletter sign up forms to your site. These are snippets of code that will let your users sign up with you at the click of a button.


We're currently sending weekly email blasts of over 800,000 emails in 4 hours on a $10 per month Digital Ocean VPS with 1 GB memory and 1 core processor.

Mail for Good is fast and scales to the rate limit enforced by AWS.

Why are we doing this?

We want to help nonprofits manage their email campaigns as inexpensively as possible, and have full control over their data.

How to install locally

local deployment


We're keen to tackle any issues people encounter. If you experience any problems, please create an issue and we'll get back to you.

How to contribute

Found a bug? Please let us know by creating an issue.

We warmly welcome contributions from anyone. Check out our how to contribute section to find out how you can do so.


Copyright (c) 2018, freeCodeCamp.

This computer software is licensed under the BSD-3-Clause.

You can’t perform that action at this time.