Git Product home page Git Product logo

mail-for-good's Introduction

Mail for Good

Join the chat at https://gitter.im/FreeCodeCamp/mail-for-good

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!

Deploy

"My instance is deployed, what now?"

In setting_up.md 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.

Performance

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 guide.md.

Troubleshooting

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.

License

Copyright (c) 2018, freeCodeCamp.

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

mail-for-good's People

Contributors

4iar avatar adam-lynch avatar alicanozer avatar andrewwalsh avatar anubhavp28 avatar carljkashnier avatar dakotav6 avatar danbovey avatar dhuang612 avatar gitter-badger avatar ialexryan avatar ishtms avatar jimmy1134 avatar jmcilhargey avatar joel-bentley avatar karuppiah7890 avatar lmesz avatar lukecamelo avatar namansachdeva avatar nrgwsth avatar quincylarson avatar raisedadead avatar ratracegrad avatar sanspace avatar saurabh30 avatar stuartstephens avatar vineelsai26 avatar wadleo avatar zaynmalloc avatar zhakk-harn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mail-for-good's Issues

SES input

As a user, I can add an SES key so I can send emails and they will be billed to my AWS account

Implement SendCampaign fixes/changes

Send campaign

  • Unclear that emails even have to be sent (were they sent on saving the campaign?)
  • The error message issued when there's an error with sending a page needs to be cleared on component unmount
  • On a successful campaign send, the '4.0 hours' description of how long something will take needs better formatting. Should be formatted like "35 minutes" or "1 hour and 23 minutes".
  • Introduce commas to the remaining Amazon SES limit for better readability
  • Add new lines above the unsubscribe feature

Implement CreateCampaign view fixes/changes

Create Campaign

  • On applying a template, some fields have to be reselected
  • Campaign name should be automatically filled when blank
  • Create campaign button needs a better name (e.g. 'Create this campaign' rather than just 'Create')
  • The state of the form is not saved on refreshing the page
  • Needs to be clearer that after creating a campaign, it has been created but not sent

Settings page

As a user, I should be able to access my settings

Sending a test Email

As a registered user who has added their SES key from amazon AWS I can send a test email.

Implement ImportCsv view fixes/changes

ImportCsv

  • Subtext below title looks like an error. Remove the red icon.
  • It's not clear is importing a CSV was successful.
  • CSV files are not validated on the server.
  • Importing CSV files to the db is slow. Is it possible to improve performance?
  • Needs some way for telling the user that their import is in progress (perhaps websockets)

Tracking Pixel Add

As a admin, I can use a tracking pixel to see how many emails are opened. Maybe a trend finder to preemptively unsubscribe users from the list.

Async methods used

As a user the system will use async methods to speed the sending of the requests.

White Label URLs (CNAME)

As a user I can set up a CNAME on my web server and use my domain to in place of the app server address.

Looks like
<a href="http://www.mydomain.com/ref=uniqueID&http://www.freecodecamp.com"> Link </a>

instead of
<a href="https://awesome-pines-8675309.herokuapp.com/ref=uniqueID&http://www.freecodecamp.com"> Link </a>

Subscribe Microservice

As a potential subscriber I can click a subscribe button that will add my email to the database and add any relevant data.

"Mail Merge"

As a user I can use the user name in an email using a notation.(examples below)

Few options
{{user}}
%user%
<%user%>

Dashboard

As a user, I can view a dashboard that contains my analytics, subscriber lists, campaigns, and settings

Campaign setup

As a user, I should be able to set up campaigns for different email categories. 'Donation requests', 'Welcome email', 'Constituent updates', etc.

API (Security)

As a developer I will have a secret code so that my mailing list will be secure.

Subscribers data

As a user, I should be able to upload multiple subscriber lists data in .csv form.

Implement Template view fixes/changes

Templates

  • It's not clear how to save templates
  • When the editor's in plaintext mode, no rich text options should exist
  • Issue a toast warning on form validation failure
  • Template names should be autogenerated by default
  • Preview transition is too quick - also throw a toast informing the user that a transition occurred
  • 'Create' button should be 'Save as a template'
  • Transition from templates to create campaign is confusing, issue message e.g. "Message saved, sending you to create template page"

Edit: Add issues

  • Fix preview of templates
  • Templates are not applied to the text box correctly

Add mailing list schema

As a registered user, I can store my mailing list in a Mongo database on the server with multiple fields.

Load testing for email blasts

As a user, I can simulate sending thousands of emails without actually sending them so that I can understand how quickly they will be delivered and verify there aren't any technical issues that will interfere with my email blast.

Note that this will be essential for us to be able to improve the performance of the emailing engine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.