Back to Articles

Email Marketing at Scale: Amazon SES, BullMQ Queues, and Template Builders

How to build a self-hosted email marketing platform using Amazon SES for delivery, BullMQ for rate-limited sending queues, and a drag-and-drop template builder.

Email Marketing at Scale: Amazon SES, BullMQ Queues, and Template Builders

Sending 100,000 emails without getting blacklisted requires careful queue management. MailBlast handles this with BullMQ worker pipelines.


1. Rate-Limited Sending with BullMQ

Amazon SES has sending rate limits. BullMQ processes emails at a controlled pace:

typescript
import { Queue, Worker } from 'bullmq'; const emailQueue = new Queue('emails', { connection: redisConnection }); const worker = new Worker('emails', async (job) => { await ses.sendEmail({ Source: job.data.from, Destination: { ToAddresses: [job.data.to] }, Message: { Subject: { Data: job.data.subject }, Body: { Html: { Data: job.data.html } } } }); }, { connection: redisConnection, limiter: { max: 14, duration: 1000 } });

2. Template Builder

A visual drag-and-drop editor lets marketers build responsive email templates without writing HTML. Templates compile to inline-CSS email markup.


3. Campaign Analytics

Tracking pixels and link redirects measure open rates and click-through rates, displayed in real-time Chart.js dashboards.


Summary

BullMQ rate limiting + SES delivery + visual template editing creates an email platform that scales to millions of sends while maintaining deliverability.