Skip to content
🦜 Scalable email templates for node.js applications.
JavaScript CSS HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Scalable email templates for node.js

Build Status Codecov NPM

Macaw is a suite of tools that helps you design and send transactional emails. It aims to solve the problems that usually occur at the intersection of design, copywriting and engineering.

Macaw is:

  • A node.js package that helps you to use templates to send transactions emails
  • A CLI tool that helps you structure and preview templates

Macaw is not:

  • A Mailchimp-esque drag-and-drop email builder
  • A email sending service

Quick example

Some lines of code usually say more than any documentation could, so here's an optimistic example of how this library could be used:

const macaw = require("macaw");
const sendgrid = require("@macaw-email/provider-sendgrid");

const mailer = macaw({
  provider: sendgrid({ apiKey: "aaaaa-bbbbbbb-ccccccc-ddddddd" })

const template = mailer.template("monthly-newsletter", {
  customerName: "Example Business",
  greeting: "Hi, Thomas!"

await template.send({
  to: {
    name: "Thomas Schoffelen",
    email: ""

Getting started

Quickly get up and running by executing this command in your project's root directory:

npx macaw init

This will:

  1. Create a emails directory with an example template and layout file.
  2. Add macaw to your package.json file.

Take a look at the files created in the emails directory, and use the documentation links below to learn what's next.


You can’t perform that action at this time.