The Broadcast Blog

Notes from building a self-hosted email platform

Technical deep-dives, design decisions, and lessons from the Broadcast team — written for developers who care about how things actually work.

Featured

Verify every address you send from, not just the first one

Broadcast has let one channel send from several From addresses for a while. The setup wizard only ever checked one of them with your email provider, so the second and third addresses could look fine in Broadcast and be rejected at send time. In 2.27 every identity gets checked, individually, and told you which one is the problem.

SC
Simon Chiu
Read article

Topics covered

sender verification from address sender identity email deliverability SPF DKIM DMARC Postmark verification

More posts

Announce every release automatically, with an email you still get to approve

Broadcast autopilots can now watch your releases and draft a product update email for each new version, complete with your screenshots and docs links, ready for review.

Simon Chiu Read

Permissions You Can Read at a Glance, and Grant Twenty Channels at a Time

Broadcast 2.24 rebuilds channel permissions around readable roles, plain-language summaries, and bulk apply across many channels at once.

Simon Chiu Read

Knowing When Your Own Server Goes Down

Broadcast 2.25 adds opt-in server health monitoring with down and recovery emails, a diagnose command that collects a support bundle, and a fix command that repairs installation drift.

Simon Chiu Read

One Bounce Should Block an Address Everywhere

Copy a channel’s suppression list to the global list in one action, and manage both lists through the API — how suppressions work across multiple channels in Broadcast 2.23.

Simon Chiu Read

The Segment That Quietly Matched Nobody

Broadcast 2.21 adds a Maintenance section that finds imported data the app cannot use — starting with dates — and repairs it after showing you exactly what would change.

Simon Chiu Read

You Should Know What an Error Report Sends

Broadcast 2.20.1 fixes the Send Report button on the error page and shows you exactly what it will transmit, with email addresses, keys and tokens stripped out.

Simon Chiu Read

Your Install Should Tell You When It’s Out of Date

Broadcast 2.20 tells you when a newer version is available, lets you turn that check off, and lets you reopen the What’s New tour for any past release.

Simon Chiu Read

Export What You’re Looking At: CSV for Subscribers, Broadcasts and Activity

Broadcast 2.19 adds CSV export for subscribers, broadcast performance, and per-recipient activity, scoped to whatever your current search and filters are showing.

Simon Chiu Read

One Customer’s Feedback Email, Shipped

Broadcast 2.18 ships a round of customer-requested improvements: domain search, a sortable per-recipient activity table, template and segment cloning, template tags, and opens and clicks in subscriber activity.

Simon Chiu Read

A Backup on the Same Server Isn’t a Backup

Broadcast 2.17 adds automatic off-server backups to any S3-compatible object storage, with connection testing, upload status, retry, and remote retention.

Simon Chiu Read

The 200 That Didn’t Do What You Asked

Broadcast 2.16 adds API response warnings for successful-but-surprising requests, an Idempotency-Key header for transactional email, and confirmed_at on subscriber creation.

Simon Chiu Read

Ask AI: An Email Marketing Assistant You Actually Own

Ask AI is Broadcast’s in-app assistant. Bring your own API key, pick the model, and keep subscriber data on your server. Included in the license, no AI tier.

Simon Chiu Read

Your SPF Record Will Break When You Least Expect It

Broadcast monitors your SPF, DKIM, and DMARC records continuously and alerts you when a healthy record breaks. Built in, no separate monitoring subscription.

Simon Chiu Read

Email Marketing Software Your AI Agent Can Actually Drive

How Broadcast 2.0 exposes a first-class surface for AI agents like Claude Code to discover, configure, and operate a self-hosted email marketing platform.

Simon Chiu Read

Autopilot: The Newsletter That Writes Its First Draft Itself

Autopilot drafts your newsletter from GitHub commits, RSS feeds, and web pages, in your voice, with a review step before anything sends. Ships in the license.

Simon Chiu Read

Nobody Reads the Changelog

Broadcast 2.15 introduces a What’s New tour that walks you through the features added since your last version, with a screenshot and a link to try each one.

Simon Chiu Read

Making Broadcast Sends Bulletproof: Safe to Crash, Safe to Retry, Safe to Resume

How Broadcast v2.12 made bulk sending idempotent, retryable, and resumable with Postgres constraints and Active Job. A technical walkthrough.

Simon Chiu Read

Double Opt-In Without the Straitjacket

Double opt-in in Broadcast: API-first confirmation, editable templates, six customizable page states, and redirects to your own domain.

Simon Chiu Read

Your List, Your Data Model

How Broadcast treats subscribers as records you shape: custom data fields, opt-in form blocks, CSV column mapping, and typed segmentation with self-updating relative date rules.

Simon Chiu Read

An AI That Reads Your Actual DNS, Not a Blog Post About DNS

Broadcast 2.14 connects Ask AI to real SPF, DKIM and DMARC check results for your domains, so deliverability answers reflect your actual DNS rather than generic advice.

Simon Chiu Read

The True Cost of Email Marketing at Scale (2026)

A three-year cost comparison of email marketing as your list grows from 1k to 100k subscribers: Mailchimp, Beehiiv, and ConvertKit subscriptions vs. self-hosted Broadcast.

Simon Chiu Read

Why We Sell a One-Time License in a Subscription World

Why Broadcast is sold as a one-time license instead of a subscription: the incentive alignment, the trade-offs, and what owning your software actually means.

Simon Chiu Read

Importing a List Shouldn’t Require Rewriting the File First

Broadcast 2.11 adds a preview-and-map step to subscriber imports: see the first rows, map each column to email, name, tags or custom data, and choose your tag separator.

Simon Chiu Read

EU Data Sovereignty for Email Marketers in 2026: The Regulatory Floor Just Moved Again

A developer’s read on EU data sovereignty for email marketing in 2026: DPF, CLOUD Act, NIS2, and what self-hosting actually fixes.

Simon Chiu Read

Ask the Question at Signup, Not in a Survey Six Months Later

Broadcast 2.10 adds a Custom Field block to the opt-in form editor for collecting free-text and multi-line answers into subscriber custom data at signup.

Simon Chiu Read

The Page After the Click Is Part of Your Brand Too

Broadcast 2.8 adds per-state confirmation page text for all six outcomes and an After Confirmation redirect URL so subscribers can land on your own page instead.

Simon Chiu Read

A Segment With a Hardcoded Date Is a Segment That Rots

Broadcast 2.6 adds relative date values (N days ago) to segment rules, so date-based segments stay current automatically instead of needing manual edits.

Simon Chiu Read

Connecting an Email Provider Should Not Take an Afternoon

Broadcast 2.1 introduced guided connection wizards for Postmark, AWS SES, SendGrid and Mailgun, with automatic domain and sender discovery plus webhook registration.

Simon Chiu Read

What Broadcast 2.0 Actually Changed

A look back at what shipped in Broadcast 2.0: Autopilot AI newsletter drafting, an agent-native surface, API rate limiting, editor improvements, and per-broadcast unsubscribe control.

Simon Chiu Read

E2E Email Provider Testing in Rails CI: Verifying Emails Actually Arrive

A technical deep-dive into building end-to-end email provider tests that verify actual email delivery in CI pipelines.

Simon Chiu Read

Building Self-Hosting Rails Applications: Design Decisions & Why

Technical deep-dive into the design decisions that make Broadcast a truly self-hostable Rails application.

Simon Chiu Read

Subscribe via RSS

Get new posts delivered to your favorite feed reader.

View RSS feed