<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Broadcast Blog</title>
    <description>Technical articles and updates from the Broadcast team about self-hosted email marketing.</description>
    <link>https://sendbroadcast.net/</link>
    <language>en</language>
    <atom:link href="https://sendbroadcast.net/blog/feed" rel="self" type="application/rss+xml"/>
    <item>
      <title>Manage a Subscriber's Topics by Hand, and Segment by Topic, Without Overriding Their Choice</title>
      <description>Topics told Broadcast which emails each subscriber wants, but you could only change them through custom data, and segments could not filter by them. Broadcast 2.48 puts topics on the subscriber profile and adds a Topic segment rule, and a topic the subscriber turned off stays off until they turn it back on.</description>
      <link>https://sendbroadcast.net/blog/manage-subscriber-topics-and-segment-by-topic</link>
      <guid>https://sendbroadcast.net/blog/manage-subscriber-topics-and-segment-by-topic</guid>
      <pubDate>15 Oct 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Broadcast Fits on a 2 GB Server Again</title>
      <description>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.</description>
      <link>https://sendbroadcast.net/blog/run-email-marketing-on-a-2-gb-server</link>
      <guid>https://sendbroadcast.net/blog/run-email-marketing-on-a-2-gb-server</guid>
      <pubDate>11 Oct 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Login Codes No Longer Wait Behind Your Newsletter</title>
      <description>A large newsletter could use up an email server's hourly limit and make password resets wait. Broadcast now sends transactional email first, keeps room in the hourly limit for it, and never goes above the limit you set.</description>
      <link>https://sendbroadcast.net/blog/login-codes-never-wait-behind-a-newsletter</link>
      <guid>https://sendbroadcast.net/blog/login-codes-never-wait-behind-a-newsletter</guid>
      <pubDate>10 Oct 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>I Priced Out Vibe-Coding a Copy of My $250 App</title>
      <description>A founder says half his churn is now customers who rebuild his product with AI. So I priced out rebuilding mine with Claude, using all 3,032 commits in its history. Here is the token bill, the Claude Max bill, and when you should build it yourself.</description>
      <link>https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast</link>
      <guid>https://sendbroadcast.net/blog/what-it-costs-to-vibe-code-broadcast</guid>
      <pubDate>07 Oct 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Let Subscribers Choose Which Emails They Get, Instead of Losing Them Entirely</title>
      <description>When a list gets one kind of email nobody asked for, the only way out used to be unsubscribing from everything. Broadcast 2.41 adds subscriber topics: people choose the emails they want, unsubscribe from one topic without leaving, and every choice is recorded for your consent trail.</description>
      <link>https://sendbroadcast.net/blog/let-subscribers-choose-which-emails-they-get</link>
      <guid>https://sendbroadcast.net/blog/let-subscribers-choose-which-emails-they-get</guid>
      <pubDate>07 Oct 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Your Team Should Not Need English to Send Your Newsletter</title>
      <description>Broadcast already spoke your subscribers' language, but the dashboard was English only. Broadcast 2.39 adds Italian, French, German, Spanish, Portuguese, Dutch, Polish, Swedish, Danish, Norwegian and Finnish. Each person picks their own on My Profile.</description>
      <link>https://sendbroadcast.net/blog/email-marketing-dashboard-in-your-language</link>
      <guid>https://sendbroadcast.net/blog/email-marketing-dashboard-in-your-language</guid>
      <pubDate>02 Oct 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>When a Send Breaks Halfway, Pick Up Where It Stopped</title>
      <description>A broadcast that dies halfway leaves you guessing who got it. Broadcast 2.38 stops cleanly, tells you why, and lets you resume without mailing anyone twice. Webhooks now wait out an outage, and your suppression list says where every address came from.</description>
      <link>https://sendbroadcast.net/blog/resume-a-failed-email-broadcast</link>
      <guid>https://sendbroadcast.net/blog/resume-a-failed-email-broadcast</guid>
      <pubDate>29 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>How to Build a Salesforce Email Template With a Free Drag-and-Drop Builder</title>
      <description>Salesforce's own template editors are fine for a quick one-to-one email and painful for anything designed. A step-by-step guide to building the template in a free drag-and-drop builder, pasting the HTML into Lightning Email Templates or Account Engagement (Pardot), and swapping in the right merge fields.</description>
      <link>https://sendbroadcast.net/blog/salesforce-email-template-builder</link>
      <guid>https://sendbroadcast.net/blog/salesforce-email-template-builder</guid>
      <pubDate>26 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>One Webhook When You Purge a List, Not Thousands</title>
      <description>Purging a channel's subscribers used to leave your integrations in the dark. Broadcast now sends one webhook for the whole purge, with counts, and another if the purge stops before it finishes.</description>
      <link>https://sendbroadcast.net/blog/webhooks-for-purging-a-subscriber-list</link>
      <guid>https://sendbroadcast.net/blog/webhooks-for-purging-a-subscriber-list</guid>
      <pubDate>25 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Was passiert, wenn das Data Privacy Framework fällt?</title>
      <description>Das EU-US Data Privacy Framework gilt, steht aber unter Druck. Was ein Wegfall für Unternehmen mit US-Newsletter-Tools bedeuten würde, und was Sie mit Ihrem DSB heute schon vorbereiten können.</description>
      <link>https://sendbroadcast.net/blog/data-privacy-framework-faellt</link>
      <guid>https://sendbroadcast.net/blog/data-privacy-framework-faellt</guid>
      <pubDate>24 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Let Claude Code Run Your Email Marketing, and Script Your Team</title>
      <description>Connecting an AI agent to Broadcast used to mean a CLI or raw API calls, and adding a teammate meant clicking through the web interface. Broadcast 2.35 has an MCP server built into the app, a Users API for admin tokens, and a rate limit you can set on each token.</description>
      <link>https://sendbroadcast.net/blog/mcp-server-and-users-api-for-self-hosted-email</link>
      <guid>https://sendbroadcast.net/blog/mcp-server-and-users-api-for-self-hosted-email</guid>
      <pubDate>16 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>A Drag-and-Drop Email Builder That Starts From Your Brand</title>
      <description>Until now, a Broadcast email was either rich text or HTML you wrote yourself, and neither was a comfortable way to lay out a designed newsletter. Broadcast now has a drag-and-drop builder, and a brand kit that every design starts from.</description>
      <link>https://sendbroadcast.net/blog/drag-and-drop-email-builder-with-a-brand-kit</link>
      <guid>https://sendbroadcast.net/blog/drag-and-drop-email-builder-with-a-brand-kit</guid>
      <pubDate>14 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Two-Factor Authentication, and Letting Cloudflare Do It for You</title>
      <description>A password alone is a weak lock on a tool that can email your whole list. Broadcast now supports a second sign-in step with an authenticator app, lets an administrator require it for everyone, and can hand sign-in over to Cloudflare Access if your dashboard already sits behind it.</description>
      <link>https://sendbroadcast.net/blog/two-factor-authentication-for-self-hosted-email</link>
      <guid>https://sendbroadcast.net/blog/two-factor-authentication-for-self-hosted-email</guid>
      <pubDate>10 Sep 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Working in Two Channels at Once, Without Them Getting Mixed Up</title>
      <description>If you run several brands or lists in Broadcast, you have probably opened two tabs and had them quietly fight over which channel you were in. The channel now lives in the page's address, so each tab stays where you put it.</description>
      <link>https://sendbroadcast.net/blog/working-in-multiple-channels-at-once</link>
      <guid>https://sendbroadcast.net/blog/working-in-multiple-channels-at-once</guid>
      <pubDate>17 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>DigitalOcean blocks ports 25, 465, and 587. Here is what to do.</title>
      <description>DigitalOcean blocks outbound SMTP on ports 25, 465, and 587 on droplets, sometimes after months of working fine. A step-by-step guide to confirming the block from your own server, getting sending again on port 2525, and appealing the block.</description>
      <link>https://sendbroadcast.net/blog/digitalocean-port-25-465-587-blocked</link>
      <guid>https://sendbroadcast.net/blog/digitalocean-port-25-465-587-blocked</guid>
      <pubDate>15 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>This and this, but not that</title>
      <description>A customer wrote in saying they could not build a segment that kept two lead sources and excluded two others. The feature they needed had shipped six months earlier. This release is mostly about why they could not find it, and the bugs I found while looking.</description>
      <link>https://sendbroadcast.net/blog/segment-rules-and-or-conditions</link>
      <guid>https://sendbroadcast.net/blog/segment-rules-and-or-conditions</guid>
      <pubDate>15 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>The upgrade that never finished</title>
      <description>A customer's server kept going down at weekends, and their upgrades hung instead of finishing. The cause was a single database session left open on someone's desk. This release makes a blocked upgrade fail in seconds instead of waiting forever, refuses to interrupt work that a restart cannot resume, and lets a channel keep its marketing mail off the stream that carries its receipts.</description>
      <link>https://sendbroadcast.net/blog/the-upgrade-that-never-finished</link>
      <guid>https://sendbroadcast.net/blog/the-upgrade-that-never-finished</guid>
      <pubDate>09 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Verify every address you send from, not just the first one</title>
      <description>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.</description>
      <link>https://sendbroadcast.net/blog/verify-every-sender-address-not-just-the-first-one</link>
      <guid>https://sendbroadcast.net/blog/verify-every-sender-address-not-just-the-first-one</guid>
      <pubDate>07 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Announce every release automatically, with an email you still get to approve</title>
      <description>Shipping a release is the easy half. Telling your users about it is the half that slips. Broadcast can now watch your changelog or GitHub releases and draft the announcement email for you, staged for review before anything sends.</description>
      <link>https://sendbroadcast.net/blog/announce-your-releases-automatically</link>
      <guid>https://sendbroadcast.net/blog/announce-your-releases-automatically</guid>
      <pubDate>04 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Permissions You Can Read at a Glance, and Grant Twenty Channels at a Time</title>
      <description>A customer with dozens of channels told us our permissions page was too complicated to look at, and granting access meant clicking through channels one at a time. He was right on both counts. 2.24 rebuilds the whole thing around roles you can read and a bulk apply that stamps a permission set onto every selected channel in one step.</description>
      <link>https://sendbroadcast.net/blog/channel-permissions-roles-and-bulk-apply</link>
      <guid>https://sendbroadcast.net/blog/channel-permissions-roles-and-bulk-apply</guid>
      <pubDate>03 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Knowing When Your Own Server Goes Down</title>
      <description>The honest weakness of self-hosting is that nobody is watching your box at 3am. Broadcast 2.25 adds opt-in health monitoring that emails you when your server stops checking in, a one-command checkup that collects the evidence, and a repair command for the boring drift that breaks installs.</description>
      <link>https://sendbroadcast.net/blog/knowing-when-your-self-hosted-server-goes-down</link>
      <guid>https://sendbroadcast.net/blog/knowing-when-your-self-hosted-server-goes-down</guid>
      <pubDate>03 Aug 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>One Bounce Should Block an Address Everywhere</title>
      <description>If you run several channels in Broadcast, an address that hard-bounced in one could still be emailed from the others. That is a reputation problem, and it was ours to fix. 2.23 adds a one-action copy from a channel's suppression list to the global one, and a full API for both lists.</description>
      <link>https://sendbroadcast.net/blog/blocking-a-bounced-address-everywhere</link>
      <guid>https://sendbroadcast.net/blog/blocking-a-bounced-address-everywhere</guid>
      <pubDate>31 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>The Segment That Quietly Matched Nobody</title>
      <description>A customer's segment was matching far fewer people than it should. The cause was a date column imported as 24/01/2026, which no segment rule can compare. Broadcast 2.21 adds a Maintenance section that finds values like that and repairs them, and a format picker so they stop arriving in the first place.</description>
      <link>https://sendbroadcast.net/blog/repair-imported-dates-that-break-segments</link>
      <guid>https://sendbroadcast.net/blog/repair-imported-dates-that-break-segments</guid>
      <pubDate>29 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>You Should Know What an Error Report Sends</title>
      <description>An error page asked people to send us a report and never said what was in it. Worse, the button had been quietly broken, so the reports that were sent arrived empty. Broadcast 2.20.1 fixes the button and shows you the exact payload before you send it.</description>
      <link>https://sendbroadcast.net/blog/what-an-error-report-sends</link>
      <guid>https://sendbroadcast.net/blog/what-an-error-report-sends</guid>
      <pubDate>27 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Your Install Should Tell You When It's Out of Date</title>
      <description>Self-hosted software has a habit of going quiet. It runs, it works, and six versions later you find out you missed a fix that would have saved you an afternoon. Broadcast 2.20 adds an update notice, a switch to turn it off, and a way to reopen any past release's What's New tour.</description>
      <link>https://sendbroadcast.net/blog/knowing-when-your-self-hosted-app-needs-updating</link>
      <guid>https://sendbroadcast.net/blog/knowing-when-your-self-hosted-app-needs-updating</guid>
      <pubDate>26 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Export What You're Looking At: CSV for Subscribers, Broadcasts and Activity</title>
      <description>Your data should never be stuck inside the tool that happens to hold it. Broadcast 2.19 adds CSV export to the subscribers list, the broadcasts list, and a broadcast's recipient activity, and every export contains exactly the rows the screen was showing, filters and all.</description>
      <link>https://sendbroadcast.net/blog/csv-export-subscribers-broadcasts-activity</link>
      <guid>https://sendbroadcast.net/blog/csv-export-subscribers-broadcasts-activity</guid>
      <pubDate>26 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>One Customer's Feedback Email, Shipped</title>
      <description>A customer sent a list of nine things that annoyed them about Broadcast. Version 2.18 is most of that list: domain search, a sortable recipient table for every send, cloning templates and segments, template tags, and engagement in a subscriber's activity.</description>
      <link>https://sendbroadcast.net/blog/shipping-a-customer-feedback-release</link>
      <guid>https://sendbroadcast.net/blog/shipping-a-customer-feedback-release</guid>
      <pubDate>26 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>A Backup on the Same Server Isn't a Backup</title>
      <description>Self-hosting means the backup story is yours to get right. Broadcast 2.17 uploads every backup to S3-compatible object storage (AWS S3, Cloudflare R2, Backblaze B2, Wasabi, MinIO), tests the connection before you trust it, and prunes old copies on a schedule you set.</description>
      <link>https://sendbroadcast.net/blog/offsite-backups-s3-object-storage</link>
      <guid>https://sendbroadcast.net/blog/offsite-backups-s3-object-storage</guid>
      <pubDate>24 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>The 200 That Didn't Do What You Asked</title>
      <description>A successful API response is not the same as the outcome you intended. Broadcast 2.16 adds a warnings array to every response where the two diverge, an Idempotency-Key header for transactional sends, and a clean path for migrating confirmed subscribers off another platform.</description>
      <link>https://sendbroadcast.net/blog/api-warnings-and-idempotent-sends</link>
      <guid>https://sendbroadcast.net/blog/api-warnings-and-idempotent-sends</guid>
      <pubDate>23 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Ask AI: An Email Marketing Assistant You Actually Own</title>
      <description>Broadcast shipped an in-app AI assistant in v2.12. You bring your own key and pick the model. Subscriber data never leaves your server. There's no AI tier. Here's how it works.</description>
      <link>https://sendbroadcast.net/blog/ask-ai-self-hosted-email-assistant</link>
      <guid>https://sendbroadcast.net/blog/ask-ai-self-hosted-email-assistant</guid>
      <pubDate>10 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Your SPF Record Will Break When You Least Expect It</title>
      <description>Everyone checks SPF, DKIM, and DMARC once, at setup, and never again. Then a DNS migration breaks a record weeks later and deliverability slides with no warning. Broadcast now watches those records continuously, out of the box.</description>
      <link>https://sendbroadcast.net/blog/monitor-spf-dkim-dmarc-dns-health</link>
      <guid>https://sendbroadcast.net/blog/monitor-spf-dkim-dmarc-dns-health</guid>
      <pubDate>09 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Email Marketing Software Your AI Agent Can Actually Drive</title>
      <description>Email platforms were built for a human clicking a dashboard. In Broadcast 2.0 we added a first-class surface for AI agents: discovery endpoints, setup links, a bash CLI, and an MCP server. Because it's self-hosted with a real API, an agent can run it end to end.</description>
      <link>https://sendbroadcast.net/blog/agent-native-email-marketing</link>
      <guid>https://sendbroadcast.net/blog/agent-native-email-marketing</guid>
      <pubDate>08 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Autopilot: The Newsletter That Writes Its First Draft Itself</title>
      <description>The hardest part of a newsletter is not sending it. It's writing issue 37 when you're busy shipping. Autopilot drafts each issue from sources you point it at (your GitHub repo, RSS feeds, web pages) and hands it to you for review before anything goes out.</description>
      <link>https://sendbroadcast.net/blog/autopilot-ai-newsletters</link>
      <guid>https://sendbroadcast.net/blog/autopilot-ai-newsletters</guid>
      <pubDate>07 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Nobody Reads the Changelog</title>
      <description>Self-hosted software has a communication problem: you upgrade, and the features you paid for sit there unfound. Broadcast 2.15 adds a short What's New tour that runs after an upgrade: a screenshot and a link per feature, once per user, dismissible.</description>
      <link>https://sendbroadcast.net/blog/whats-new-tour-after-upgrade</link>
      <guid>https://sendbroadcast.net/blog/whats-new-tour-after-upgrade</guid>
      <pubDate>06 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Making Broadcast Sends Bulletproof: Safe to Crash, Safe to Retry, Safe to Resume</title>
      <description>When you self-host your email platform, a crash mid-broadcast is your problem to get right. Here is how we made Broadcast's send pipeline idempotent, self-retrying, and resumable, built on Postgres constraints and Active Job.</description>
      <link>https://sendbroadcast.net/blog/bulletproof-email-sending</link>
      <guid>https://sendbroadcast.net/blog/bulletproof-email-sending</guid>
      <pubDate>06 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Double Opt-In Without the Straitjacket</title>
      <description>Double opt-in is table stakes for GDPR-conscious list building, but most platforms hand you one rigid flow you cannot touch. Broadcast exposes the whole thing, from the API to the confirmation page, down to redirecting subscribers to your own domain.</description>
      <link>https://sendbroadcast.net/blog/double-opt-in-email-marketing</link>
      <guid>https://sendbroadcast.net/blog/double-opt-in-email-marketing</guid>
      <pubDate>05 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Your List, Your Data Model</title>
      <description>A subscriber is more than an email and a name. Here's how Broadcast lets you attach structured data to every subscriber, collect it at signup, import it cleanly, and segment on all of it, across the list-building features we shipped this spring.</description>
      <link>https://sendbroadcast.net/blog/list-building-and-segmentation</link>
      <guid>https://sendbroadcast.net/blog/list-building-and-segmentation</guid>
      <pubDate>04 Jul 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>An AI That Reads Your Actual DNS, Not a Blog Post About DNS</title>
      <description>Ask any chatbot about SPF and it recites the same generic advice. Broadcast 2.14 lets Ask AI answer deliverability questions using your domains' real SPF, DKIM and DMARC check data, grounded in what your DNS actually says today.</description>
      <link>https://sendbroadcast.net/blog/ai-that-reads-your-own-dns</link>
      <guid>https://sendbroadcast.net/blog/ai-that-reads-your-own-dns</guid>
      <pubDate>15 Jun 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Why We Sell a One-Time License in a Subscription World</title>
      <description>Every piece of startup advice says recurring revenue is the holy grail. We sell Broadcast for a one-time fee anyway. Here's the reasoning: the incentives it fixes, the trade-offs it forces, and what it means for the people who buy it.</description>
      <link>https://sendbroadcast.net/blog/why-one-time-license</link>
      <guid>https://sendbroadcast.net/blog/why-one-time-license</guid>
      <pubDate>06 Jun 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Importing a List Shouldn't Require Rewriting the File First</title>
      <description>Every platform's export has different column names, and most importers make that your problem. Broadcast 2.11 previews your file, guesses what each column is, and lets you map anything it got wrong, including tags and custom fields, before a single row is written.</description>
      <link>https://sendbroadcast.net/blog/csv-import-column-mapping</link>
      <guid>https://sendbroadcast.net/blog/csv-import-column-mapping</guid>
      <pubDate>09 May 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>EU Data Sovereignty for Email Marketers in 2026: The Regulatory Floor Just Moved Again</title>
      <description>Three regulatory shoes are about to drop in a 30-day window. Here's what European email marketers actually need to know about the CLOUD Act, the Data Privacy Framework, and NIS2, and what self-hosting does and doesn't fix.</description>
      <link>https://sendbroadcast.net/blog/eu-data-sovereignty-email-marketing-2026</link>
      <guid>https://sendbroadcast.net/blog/eu-data-sovereignty-email-marketing-2026</guid>
      <pubDate>09 May 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Ask the Question at Signup, Not in a Survey Six Months Later</title>
      <description>The cheapest moment to learn something about a subscriber is the moment they're already typing. Broadcast 2.10 adds a Custom Field block to the opt-in form editor, so a signup form can collect free-text answers straight into a subscriber's custom data.</description>
      <link>https://sendbroadcast.net/blog/ask-a-question-at-signup</link>
      <guid>https://sendbroadcast.net/blog/ask-a-question-at-signup</guid>
      <pubDate>03 May 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>The Page After the Click Is Part of Your Brand Too</title>
      <description>Someone clicks your confirmation link and lands on a page built by your email software. Broadcast 2.8 lets you write that page yourself (separate heading and body for each of six outcomes) or skip it entirely and redirect to a page on your own site.</description>
      <link>https://sendbroadcast.net/blog/confirmation-pages-you-control</link>
      <guid>https://sendbroadcast.net/blog/confirmation-pages-you-control</guid>
      <pubDate>28 Apr 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>A Segment With a Hardcoded Date Is a Segment That Rots</title>
      <description>"Subscribed after March 1st" is true for about a week. Broadcast 2.6 adds relative dates to segment rules ("in the last 30 days") so a segment recalculates itself every day instead of quietly aging into nonsense.</description>
      <link>https://sendbroadcast.net/blog/segments-that-update-themselves</link>
      <guid>https://sendbroadcast.net/blog/segments-that-update-themselves</guid>
      <pubDate>04 Apr 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Connecting an Email Provider Should Not Take an Afternoon</title>
      <description>Wiring a sending provider into self-hosted email software used to mean API keys, DNS records, webhook URLs and a lot of tab-switching. Broadcast 2.1 added guided setup wizards for Postmark, AWS SES, SendGrid and Mailgun that do the discovery and the webhook plumbing for you.</description>
      <link>https://sendbroadcast.net/blog/email-provider-setup-wizards</link>
      <guid>https://sendbroadcast.net/blog/email-provider-setup-wizards</guid>
      <pubDate>22 Mar 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>What Broadcast 2.0 Actually Changed</title>
      <description>Broadcast 2.0 made two bets that looked odd for email software in early 2026: that AI should draft your newsletter but never send it, and that an AI agent should be a first-class user of the platform. Here's what shipped, and what it was for.</description>
      <link>https://sendbroadcast.net/blog/what-broadcast-2-0-actually-changed</link>
      <guid>https://sendbroadcast.net/blog/what-broadcast-2-0-actually-changed</guid>
      <pubDate>16 Mar 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>E2E Email Provider Testing in Rails CI: Verifying Emails Actually Arrive</title>
      <description>How we built a system to verify emails sent through AWS SES, Postmark, SendGrid, and Mailgun actually arrive, using Cloudflare Workers, KV storage, and Rails credentials.</description>
      <link>https://sendbroadcast.net/blog/e2e-email-provider-testing</link>
      <guid>https://sendbroadcast.net/blog/e2e-email-provider-testing</guid>
      <pubDate>10 Jan 2026</pubDate>
      <author>Simon Chiu</author>
    </item>
    <item>
      <title>Building Self-Hosting Rails Applications: Design Decisions &amp; Why</title>
      <description>How we built Broadcast to run on customer servers with a single command, using Docker, SolidQueue, Thruster, and file-based triggers for container-to-host communication.</description>
      <link>https://sendbroadcast.net/blog/self-hosting-rails</link>
      <guid>https://sendbroadcast.net/blog/self-hosting-rails</guid>
      <pubDate>25 Nov 2025</pubDate>
      <author>Simon Chiu</author>
    </item>
  </channel>
</rss>
