macaw

Scalable email tooling for transactional emails.

Usage no npm install needed!

<script type="module">
  import macaw from 'https://cdn.skypack.dev/macaw';
</script>

README

Macaw

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 a simple 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 = await mailer.template("monthly-newsletter", {
  customerName: "Example Business",
  greeting: "Hi, Thomas!"
});

await template.send({
  to: {
    name: "Thomas Schoffelen",
    email: "thomas@schof.co"
  }
});

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.

Documentation