Visual email-template editor and campaign-sending platform built for MultiGroup. A drag-and-drop Puck canvas composes table-based, email-client-safe HTML from 18 reusable blocks, and a four-step wizard takes a campaign from template → compose → recipients → review.
Highlights
- Visual editor — 18 email blocks (hero, buttons, stats, two-column, social, …) with inline rich text, an R2-backed image picker, and a live mail-client preview.
- Campaigns — reusable recipient groups, CSV import, scheduled sends, test sends, and one-click cloning of a sent campaign into a fresh draft.
- Background sending — clicking Send enqueues the job on Cloudflare Queues and returns in ~50ms; a separate consumer worker renders and sends per-recipient, reserving daily quota in D1 and resuming the next day if the cap is hit.
- Deliverability — send-time bounce detection with auto-suppression, app-owned open/click tracking (a signed
/rredirect plus pixel), and per-recipient HMAC-signed, RFC 8058 one-click unsubscribe with a non-removable footer. - Compliance — GDPR per-email data export, a domain-health check (SPF / DKIM / DMARC), and a D1-backed limits dashboard with overage cost projection.
Stack
Next.js 16 (App Router) + Tailwind 4 + shadcn/ui, Drizzle ORM over Cloudflare D1, assets in R2, transactional mail through Cloudflare Email Sending, and three separate Workers (app, per-minute cron, queue consumer) deployed via OpenNext. Turkish UI throughout.
