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:
typescriptimport { 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.