~/sendslice
// transactional email

Good-looking email,easy as pie.

01pick the email
02pick the flavour

Free to try. No card. Your first email lands in about five minutes.

the email it sendsreally rendering — same engine that sends the mail
the menu
the part you stop doing

Email is never the thing you set out to build.

Sending email yourself

// somewhere in your codebase, forever
const html = `<table role="presentation"
  style="width:100%;max-width:600px;
  background:#fff;border:1px solid #e4e4e7">
  <tr><td style="padding:28px 32px">
    <h1 style="font:600 24px/1.3 Helvetica">
      Reset your password
    </h1>
    <a href="${url}" style="display:inline-block;
      padding:13px 30px;background:#2563eb;
      color:#fff;border-radius:6px">Reset</a>
  </td></tr></table>`

await mailer.send({ to: user.email, subject, html })

Every colour change is a deploy. Every new email is another block like this.

Sending email with SendSlice

// you chose the look in the builder, once
await sendslice.send({
  template_id: 'password-reset',
  to: user.email,
  subject: 'Reset your password',
  data: { first_name: user.firstName,
          reset_url: url },
})

No colours. No fonts. No HTML. Change the look in the builder and this code never changes.

Stop writing email HTML.