Skip to content

maileryEmbedded email automation

Triggered flows, broadcasts, tracking, and a React admin UI you mount inside your Node.js + MongoDB app. No SaaS, no per-contact pricing.

ts
import { Mailer, MongoContactAdapter, SendGridProvider, createAdminRouter, createPublicRouter } from 'mailery'

const mailer = await Mailer.init({
  db,
  adapter: new MongoContactAdapter({ db, collection: 'users' }),
  queue: { driver: 'bull', redis: { url: process.env.REDIS_URL! } },
  providers: { sendgrid: new SendGridProvider({ apiKey: process.env.SENDGRID_API_KEY! }) },
  defaultProvider: 'sendgrid',
  publicUrl: 'https://yourdomain.com',
  unsubscribeSecret: process.env.MAILER_UNSUB_SECRET!,
})

mailer.registerEvent({ name: 'Created', dedupePolicy: 'once-per-contact' })

app.use('/admin/mailer', requireAdmin, createAdminRouter(mailer))
app.use('/m', createPublicRouter(mailer))

// From your business logic:
await mailer.fire('Created', user._id.toString())

Released under the MIT License.