Nodeletter is a Node.js module that is used for creating email newsletters.


vr. 0.0.1

nodeletter is a Node.js module that is used for creating email newsletters.

It has been tested on Node.js vr. 0.8.18.

nodeletter requires the following modules:

  • http
  • fs
  • path
  • url
  • moment
  • jquery
  • inliner
  • premailer
  • markdown
  • kiwi

This Node module is intended for developers/designers tasked with creating a unique newsletter design. Normally services like MailChimp, etc., are good routes to go as one stop shops. But if you're stuck creating a solution from scratch to handle through some mailer service, that usually means you're in for a lot of trivial work, including:

  • using antiquated HTML/CSS strategies to lay out content
  • testing with numerous email browsers
  • embedding CSS inline as style attributes for MUA's that don't process header or inline CSS
  • making sure all links are referencing valid external locations
  • having multiple copies of the same design for email/online display
  • entering content into source directly
  • updating context sensitive variables (dates, names, etc.)

nodeletter attemps to solve at least some of these problems from the get go, particularly the ones that involve the design, development, and generation of email newsletters. It should make newsletter development mare akin to common web development.

nodeletter separates newsletter creation into concerns you're used to when web developing.

Render modes are instanced of behavior by which *nodeletter will render an existing email template. By default, the following are supplied (and are overrideable):

  • email: CSS is inlined, compiled into the DOM as style attributes, and compressed, link references are made external
  • online: CSS is inlined, references are made external
  • default: the template is served with no intermediate processing

nodeletter newsletters are created using the Kiwi templating engine.

Content refers to what is featured in your newsletter, which is usually text like an article or whatever.

Content is derived using markdown. Simply create a markdown file and include it in your template within ghte ./contents folder.

Feeds are lists of items that a newsletter might use, like news items or links.

Feeds are derived using JSON files that are imported from ./contents/feeds.json.

Static files are your CSS, JS, and images. These are smartly handled depending on your rendering options.

  1. Build the directory structure using the nodeletter executable.

nodeletter new template_name

  1. Build your newsletter.

  2. Start the nodeletter server.

node template.js

  1. Use render modes for developing and testing your newsletter. Render modes are displayed according to the specified path:


where: - render_mode: type of render mode, default is default - action: render action, default is display