Generate HTML email from your RSS feeds
Switch branches/tags
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.
.eslintrc.json Refactoring Feed Apr 14, 2018
.npmignore Updating options Jun 14, 2018
cli.js Updating cli Apr 15, 2018
package.json 0.6.0 May 26, 2018 Adding readme updates Jun 20, 2018


Generate HTML emails and mjml templates from one or more RSS feeds.

Note: This project is pre-version 1.0.0, so breaking changes may occur. Use at your own risk or lock down to a specific version using NPM.

Travis Build Status Coverage Status npm GitHub stars License

                                _                                   _ _ 
             _ __ ___ ___      | |_ ___         ___ _ __ ___   __ _(_) |
            | '__/ __/ __|_____| __/ _ \ _____ / _ \ '_ ` _ \ / _` | | |
            | |  \__ \__ \_____| || (_) |_____|  __/ | | | | | (_| | | |
            |_|  |___/___/      \__\___/       \___|_| |_| |_|\__,_|_|_|

rss-to-email example

Table of Contents



The recommended way to use this package is as an npm package. To install and save it to your project's dependencies, run:

npm install rss-to-email --save

After installing, call the RssToEmail factory with a config object. Use the resulting rssToEmail object to get emails in mjml or html formats:

const RssToEmail = require('rss-to-email');
const config = {
  // See #Configuration section of the docs below
const rssToEmail = RssToEmail(config);

rssToEmail.getEmail('html').then((email) => {
  console.log(email); // The HTML version of your email

rssToEmail.getEmail('mjml').then((email) => {
 console.log(email); // The MJML version of your email

Command Line

You can install this package globally and run it as a command line tool as well. First install it:

npm install -g rss-to-email

Then run the tool:

rss-to-email <config-file-path> <output-folder-path>

The path should be relative to your current directory. For example, if your config file is at ./config.json and you want to output the resulting files to a directory ./output, you would run:

rss-to-email ./config.json ./output


You can access a limited set of functionality from this library in your browser at Because mjml pulled support for browser-side usage, you can't use this library in pure client-side applications, but we have deployed this project as a serverless endpoint using Auth0's Webtasks and hosted a simple frontend on Github Pages to let non-technical people see how the software works and access some of its functionality.


For an example config file, see config.example.json.

  • accentColor: A hex or html-safe color code.
  • filename: The base name of the output files to generate (do not include extensions).
  • header: Configuration for the header section of the email:
    • banner: (optional) An image url for the banner at the top of the email.
    • link: A link for the header image or text.
    • title: Shown if the banner is not set or as an alt tag on the image.
  • intro: The first line of the email. Can use HTML or plain text.
  • feeds: An array of RSS feeds you'd like to include. Each must have a url, but can also have:
    • description: A short custom feed description. Will use the RSS feed's embedded one by default.
    • publishedSince: Filter out posts published before this date.
    • title: A custom feed title. Will use the RSS feed's embedded one by default.
    • url: The url to the RSS feed.
  • outro: The last line of the email. Can use HTML or plain text.
  • templateUrl: (optional) A handlebars/mjml template. Defaults to this file.


All patches, fixes, and ideas welcome! Please read for furthers details.