# Blog

> Technical articles, deliverability guides, product updates, and engineering notes from the team building Broadcast, the self-hosted email marketing software.

Source: https://sendbroadcast.net/blog

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 Oct 11, 2026 ## Broadcast Fits on a 2 GB Server Again Each new background worker in Broadcast is a full copy of the application, and a 2 GB server started to swap during large sends. Broadcast 2.44 adds Low memory mode: the whole job server runs in one process, chosen on the Jobs page, with no SSH needed. SC Simon Chiu Read article Topics covered self-hosted email marketing low memory server 2gb vps email marketing on a small server newsletter software low ram sendy alternative](https://sendbroadcast.net/blog/run-email-marketing-on-a-2-gb-server)

## More posts

[Oct 10, 2026 ### Login Codes No Longer Wait Behind Your Newsletter How Broadcast now decides which email goes first, keeps part of each server's hourly limit for login codes, and makes large broadcasts wait without going over the limit. Simon Chiu Read](https://sendbroadcast.net/blog/login-codes-never-wait-behind-a-newsletter) [Oct 07, 2026 ### I Priced Out Vibe-Coding a Copy of My $250 App I used Broadcast's full git history to estimate what it costs to rebuild it with Claude Opus 5.5, on the API and on a Claude Max plan. The numbers, the method, and when building your own is the right call. Simon Chiu Read](https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast) [Oct 07, 2026 ### Let Subscribers Choose Which Emails They Get, Instead of Losing Them Entirely Broadcast 2.41 adds subscriber topics, per-topic unsubscribe, a hosted preference page and a consent webhook for every choice. Simon Chiu Read](https://sendbroadcast.net/blog/let-subscribers-choose-which-emails-they-get) [Oct 02, 2026 ### Your Team Should Not Need English to Send Your Newsletter Broadcast 2.39 lets every user run the email marketing dashboard in one of twelve languages, chosen per person, without changing what subscribers see. Simon Chiu Read](https://sendbroadcast.net/blog/email-marketing-dashboard-in-your-language) [Sep 29, 2026 ### When a Send Breaks Halfway, Pick Up Where It Stopped Broadcast 2.38 resumes failed broadcasts without double-sending, holds webhook events through an outage, and shows the source of every suppression. Simon Chiu Read](https://sendbroadcast.net/blog/resume-a-failed-email-broadcast) [Sep 26, 2026 ### How to Build a Salesforce Email Template With a Free Drag-and-Drop Builder Design a responsive HTML email in a free drag-and-drop builder, then paste it into Salesforce Lightning Email Templates or Account Engagement (Pardot). Menu paths, merge field syntax, and the limits to watch for. Simon Chiu Read](https://sendbroadcast.net/blog/salesforce-email-template-builder) [Sep 25, 2026 ### One Webhook When You Purge a List, Not Thousands Broadcast sends a single subscribers.purged webhook when you purge a channel's subscribers, and subscribers.purge_failed if the purge stops partway, so connected tools can keep up. Simon Chiu Read](https://sendbroadcast.net/blog/webhooks-for-purging-a-subscriber-list) [Sep 24, 2026 ### Was passiert, wenn das Data Privacy Framework fällt? Das EU-US Data Privacy Framework steht unter Druck. Was ein Wegfall für Newsletter-Tools aus den USA bedeuten würde, plus eine Checkliste für den DSB. Simon Chiu Read](https://sendbroadcast.net/blog/data-privacy-framework-faellt) [Sep 16, 2026 ### Let Claude Code Run Your Email Marketing, and Script Your Team Broadcast 2.35 adds a built-in MCP server at /api/mcp for Claude Code and other clients, a Users API for provisioning users and permissions, per-token API rate limits, and a Last Emails tab that shows every email a subscriber received. Simon Chiu Read](https://sendbroadcast.net/blog/mcp-server-and-users-api-for-self-hosted-email) [Sep 14, 2026 ### A Drag-and-Drop Email Builder That Starts From Your Brand Broadcast 2.34 adds a drag-and-drop email builder for broadcasts, templates and sequences, with a channel brand kit, a preview as any subscriber, and emails rendered as table-based HTML that works in Outlook. Simon Chiu Read](https://sendbroadcast.net/blog/drag-and-drop-email-builder-with-a-brand-kit) [Sep 10, 2026 ### Two-Factor Authentication, and Letting Cloudflare Do It for You Broadcast 2.32 adds two-factor authentication with recovery codes, installation-wide enforcement with a grace period, and automatic sign-in for users who pass Cloudflare Access. Simon Chiu Read](https://sendbroadcast.net/blog/two-factor-authentication-for-self-hosted-email) [Aug 17, 2026 ### Working in Two Channels at Once, Without Them Getting Mixed Up Broadcast now puts the channel in each page's address, so two browser tabs can work in two different channels without interfering with each other. Simon Chiu Read](https://sendbroadcast.net/blog/working-in-multiple-channels-at-once) [Aug 15, 2026 ### DigitalOcean blocks ports 25, 465, and 587. Here is what to do. DigitalOcean blocks outbound SMTP on ports 25, 465, and 587. Confirm the block from your droplet in one command, get email sending again on port 2525 today, and appeal the block. Simon Chiu Read](https://sendbroadcast.net/blog/digitalocean-port-25-465-587-blocked) [Aug 15, 2026 ### This and this, but not that Why Broadcast's segment builder hid its AND condition in plain sight, what 2.30 changes about it, and the data-loss bug that turned up while fixing it. Simon Chiu Read](https://sendbroadcast.net/blog/segment-rules-and-or-conditions) [Aug 09, 2026 ### The upgrade that never finished Why a self-hosted upgrade can hang forever on a Postgres lock, what Broadcast 2.28 changes about it, and the Postmark stream and multi-server work that shipped alongside. Simon Chiu Read](https://sendbroadcast.net/blog/the-upgrade-that-never-finished) [Aug 07, 2026 ### Verify every address you send from, not just the first one Broadcast now verifies every sender identity on a channel with your email provider, deep-links the warnings to the address they name, and reconciles DNS Health with the provider's own verdict. Simon Chiu Read](https://sendbroadcast.net/blog/verify-every-sender-address-not-just-the-first-one) [Aug 04, 2026 ### 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](https://sendbroadcast.net/blog/announce-your-releases-automatically) [Aug 03, 2026 ### 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](https://sendbroadcast.net/blog/channel-permissions-roles-and-bulk-apply) [Aug 03, 2026 ### 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](https://sendbroadcast.net/blog/knowing-when-your-self-hosted-server-goes-down) [Jul 31, 2026 ### 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](https://sendbroadcast.net/blog/blocking-a-bounced-address-everywhere) [Jul 29, 2026 ### 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](https://sendbroadcast.net/blog/repair-imported-dates-that-break-segments) [Jul 27, 2026 ### 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](https://sendbroadcast.net/blog/what-an-error-report-sends) [Jul 26, 2026 ### 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](https://sendbroadcast.net/blog/knowing-when-your-self-hosted-app-needs-updating) [Jul 26, 2026 ### 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](https://sendbroadcast.net/blog/csv-export-subscribers-broadcasts-activity) [Jul 26, 2026 ### 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](https://sendbroadcast.net/blog/shipping-a-customer-feedback-release) [Jul 24, 2026 ### 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](https://sendbroadcast.net/blog/offsite-backups-s3-object-storage) [Jul 23, 2026 ### 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](https://sendbroadcast.net/blog/api-warnings-and-idempotent-sends) [Jul 10, 2026 ### 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](https://sendbroadcast.net/blog/ask-ai-self-hosted-email-assistant) [Jul 09, 2026 ### 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](https://sendbroadcast.net/blog/monitor-spf-dkim-dmarc-dns-health) [Jul 08, 2026 ### 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](https://sendbroadcast.net/blog/agent-native-email-marketing) [Jul 07, 2026 ### 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](https://sendbroadcast.net/blog/autopilot-ai-newsletters) [Jul 06, 2026 ### 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](https://sendbroadcast.net/blog/whats-new-tour-after-upgrade) [Jul 06, 2026 ### 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](https://sendbroadcast.net/blog/bulletproof-email-sending) [Jul 05, 2026 ### 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](https://sendbroadcast.net/blog/double-opt-in-email-marketing) [Jul 04, 2026 ### 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](https://sendbroadcast.net/blog/list-building-and-segmentation) [Jun 15, 2026 ### 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](https://sendbroadcast.net/blog/ai-that-reads-your-own-dns) [Jun 06, 2026 ### 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](https://sendbroadcast.net/blog/true-cost-of-email-marketing-at-scale) [Jun 06, 2026 ### 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](https://sendbroadcast.net/blog/why-one-time-license) [May 09, 2026 ### 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](https://sendbroadcast.net/blog/csv-import-column-mapping) [May 09, 2026 ### 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](https://sendbroadcast.net/blog/eu-data-sovereignty-email-marketing-2026) [May 03, 2026 ### 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](https://sendbroadcast.net/blog/ask-a-question-at-signup) [Apr 28, 2026 ### 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](https://sendbroadcast.net/blog/confirmation-pages-you-control) [Apr 04, 2026 ### 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](https://sendbroadcast.net/blog/segments-that-update-themselves) [Mar 22, 2026 ### 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](https://sendbroadcast.net/blog/email-provider-setup-wizards) [Mar 16, 2026 ### 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](https://sendbroadcast.net/blog/what-broadcast-2-0-actually-changed) [Jan 10, 2026 ### 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](https://sendbroadcast.net/blog/e2e-email-provider-testing) [Nov 25, 2025 ### 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](https://sendbroadcast.net/blog/self-hosting-rails)

### Subscribe via RSS

Get new posts delivered to your favorite feed reader.

 [View RSS feed](https://sendbroadcast.net/blog/feed.xml)
