<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Groundmail changelog</title>
    <link>https://groundmail.dev/changelog/</link>
    <atom:link href="https://groundmail.dev/changelog/feed.xml" rel="self" type="application/rss+xml"/>
    <description>What's new in Groundmail: new features, API, SDK, CLI and MCP changes, dashboard improvements and fixes, newest first.</description>
    <language>en</language>
    <lastBuildDate>Sun, 18 Oct 2026 12:00:00 GMT</lastBuildDate>
    <item>
      <title>Create and manage tenants in the dashboard</title>
      <link>https://groundmail.dev/changelog/#create-and-manage-tenants-in-the-dashboard</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#create-and-manage-tenants-in-the-dashboard</guid>
      <description>&lt;p&gt;You can now create a tenant without writing code: open Tenants and choose New tenant. Each tenant has its own page with its last 24 hours, its sending domains and their DNS records, its settings (name, default from domain, mail allowed and daily limit), pause and resume, a copy-ready send example, and shortcuts to create an API key or webhook endpoint limited to it or request a dedicated IP for it. The list shows each tenant's status and today's sending limit. Everything uses the same tenant API, so tenants you create in the dashboard and from code work the same way.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/tenants/&quot;&gt;Tenants&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/tenants&quot;&gt;Tenants docs&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/guides/platforms&quot;&gt;Platforms guide&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Richer Slack alerts</title>
      <link>https://groundmail.dev/changelog/#richer-slack-alerts</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#richer-slack-alerts</guid>
      <description>&lt;p&gt;Slack alerts now say what went wrong and what to do about it. Each message has a color bar for how urgent it is, quotes the error or the DNS record involved, and links straight to the right place: the domain's DNS records tab, the automation that failed, or your account page, with a setup guide or support link beside it. The Slack settings panel is tidier too: pick the channel, switch each alert on or off, and send a test message from one screen.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/integrations#slack&quot;&gt;Slack alerts docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Slack alerts</title>
      <link>https://groundmail.dev/changelog/#slack-alerts</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#slack-alerts</guid>
      <description>&lt;p&gt;Get deliverability alerts in a Slack channel you choose: when a sending domain fails DNS verification, when your account's sending is paused or suspended, and when an automation run fails. Each message links to the page that needs a look. Connect it under Settings → Integrations → Slack, then pick the channel and choose which alerts to get.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/integrations/&quot;&gt;Integrations&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/integrations#slack&quot;&gt;Slack alerts docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Domain page redesign: overview, DNS records, DMARC and settings</title>
      <link>https://groundmail.dev/changelog/#domain-page-redesign-overview-dns-records-dmarc-and-settings</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#domain-page-redesign-overview-dns-records-dmarc-and-settings</guid>
      <description>&lt;p&gt;Each domain's page now has four tabs you can link to. Overview shows the last 7 days of sent, delivered, bounced and complaints for that domain and a health checklist (sending authentication, DMARC monitoring and policy, inbound, tracking, BIMI); an unverified domain leads with the DNS steps and a Verify DNS button. DNS records puts every record in one table, grouped into sending, receiving, DMARC and tracking, with copy buttons and one place to add them for you through Cloudflare, Vercel or GoDaddy. DMARC holds the report summary and the digest switch. Settings has open and click tracking, TLS and inbound, saved as soon as you change them.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/deliverability/&quot;&gt;Deliverability&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/domains&quot;&gt;Domains docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Filter the Emails page by domain</title>
      <link>https://groundmail.dev/changelog/#filter-the-emails-page-by-domain</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#filter-the-emails-page-by-domain</guid>
      <description>&lt;p&gt;Pick a sending domain on the Emails page and the stats, the list and the CSV export all follow it. The stats now follow the list's date range too. This replaces the By sending domain table.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/emails&quot;&gt;Emails docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Folders for automations and templates</title>
      <link>https://groundmail.dev/changelog/#folders-for-automations-and-templates</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#folders-for-automations-and-templates</guid>
      <description>&lt;p&gt;Group automations and templates into folders on their dashboard pages: create, rename and delete folders, and move items from the row menu or by dragging them onto a folder. The automations list also shows emails sent in the last 7 days for each automation and folder. In the API, automations and templates take a folder by name (created if it doesn't exist; null takes an item out), and the SDK, groundmail automations / templates --folder in the CLI and the MCP tools do the same.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/automations/&quot;&gt;Automations&lt;/a&gt; · &lt;a href=&quot;https://groundmail.dev/features/templates/&quot;&gt;Templates&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/automations&quot;&gt;Automations docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <category>SDK</category>
      <category>MCP</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Help menu in the dashboard</title>
      <link>https://groundmail.dev/changelog/#help-menu-in-the-dashboard</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#help-menu-in-the-dashboard</guid>
      <description>&lt;p&gt;Help in the sidebar, under API docs, opens an email to support with the page you're on, your account and plan already filled in, so we can answer without a back-and-forth. It also has the support address with a copy button and a link to the docs.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/support/&quot;&gt;Support&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Tenants on every plan</title>
      <link>https://groundmail.dev/changelog/#tenants-on-every-plan</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#tenants-on-every-plan</guid>
      <description>&lt;p&gt;The Tenants page now shows on every plan. If your plan doesn't include tenants, it explains what they do and what's included, and owners can upgrade to Scale from there.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/tenants/&quot;&gt;Tenants&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Fixed: authentication refusals no longer suppress good addresses</title>
      <link>https://groundmail.dev/changelog/#fixed-authentication-refusals-no-longer-suppress-good-addresses</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#fixed-authentication-refusals-no-longer-suppress-good-addresses</guid>
      <description>&lt;p&gt;When a receiving server refused a message because of a check on the sending side (such as SPF, DMARC or reverse DNS) rather than the address, we counted it as a hard bounce and suppressed the recipient. These refusals are now block bounces: the address is not suppressed and the refusal doesn't count toward your bounce rate. If an address was suppressed this way, remove it on the Suppressions page.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/suppressions&quot;&gt;Suppressions docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Infra</category>
      <category>API</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Fixed: open tabs recover after we ship an update</title>
      <link>https://groundmail.dev/changelog/#fixed-open-tabs-recover-after-we-ship-an-update</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#fixed-open-tabs-recover-after-we-ship-an-update</guid>
      <description>&lt;p&gt;A dashboard tab left open while we shipped an update could show &amp;quot;This page couldn't load&amp;quot;. Tabs now reload themselves onto the new version instead.&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Fixed: attachments on text-only and HTML-only emails</title>
      <link>https://groundmail.dev/changelog/#fixed-attachments-on-text-only-and-html-only-emails</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#fixed-attachments-on-text-only-and-html-only-emails</guid>
      <description>&lt;p&gt;Attachments on an email with only a text body or only an HTML body could arrive as text in the message instead of as files. Every message is now built so that attachments arrive as real files (non-English filenames included), text and HTML are sent as alternatives, and inline images with content_id show in the HTML. The SMTP relay keeps cid: images as well.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/developers/&quot;&gt;For developers&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/emails&quot;&gt;Emails docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>Infra</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Spam scanning on outgoing and incoming email</title>
      <link>https://groundmail.dev/changelog/#spam-scanning-on-outgoing-and-incoming-email</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#spam-scanning-on-outgoing-and-incoming-email</guid>
      <description>&lt;p&gt;Outgoing email is scored for spam content before it leaves. Mail from accounts new to sending that scores too high is held for a quick review: it has status held on the Emails page, POST /emails returns status held, and a new email.held webhook carries the reason and score. Clear spam is rejected for every account, without suppressing the recipient. Received email now has spam_score and spam_status (clean, suspicious or spam) on the email and the email.received webhook, and each inbound domain can flag or drop spam over a threshold you set (inbound_spam_threshold and inbound_spam_action, also in the SDK and CLI).&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/deliverability/&quot;&gt;Deliverability&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/content-scanning&quot;&gt;Content scanning docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>SDK</category>
      <category>Dashboard</category>
      <category>Infra</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Spam test with a real spam filter score</title>
      <link>https://groundmail.dev/changelog/#spam-test-with-a-real-spam-filter-score</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#spam-test-with-a-real-spam-filter-score</guid>
      <description>&lt;p&gt;The free email spam test now runs your message through a real spam filter and shows its score, the spam and reject thresholds, and every rule that added or removed points, with what it means and how to fix it.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/tools/email-spam-test/&quot;&gt;Email spam test&lt;/a&gt;&lt;/p&gt;</description>
      <category>Free tools</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Sending limit: retries instead of failures</title>
      <link>https://groundmail.dev/changelog/#sending-limit-retries-instead-of-failures</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#sending-limit-retries-instead-of-failures</guid>
      <description>&lt;p&gt;At the new-account daily limit, the SMTP relay now answers 451 4.7.1 with the reset time, so your mail server queues the message and retries after the reset. Scheduled emails and automation emails over the limit move to just after the next reset (00:00 UTC) instead of failing.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/sending-limits&quot;&gt;Sending limits docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>Infra</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Tenants: send email for your own customers</title>
      <link>https://groundmail.dev/changelog/#tenants-send-email-for-your-own-customers</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#tenants-send-email-for-your-own-customers</guid>
      <description>&lt;p&gt;If your product sends email for your customers, create a tenant for each one (POST /tenants) and send with tenant. Each tenant gets its own domains, suppression list, stats, sending ramp and pause switch, so one customer's bad list never hurts the others, and Groundmail pauses just that tenant instead of your account. API keys can be limited to one tenant, webhook endpoints can receive only some tenants' events, and a tenant can have its own dedicated IP ($50 per IP per month, requested in Settings → Billing). Included on Scale (up to 1,000 tenants) and Dedicated (up to 10,000), with no per-tenant fee. See the Tenants page in the dashboard, client.tenants in the SDK and groundmail tenants in the CLI.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/tenants/&quot;&gt;Tenants&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/tenants&quot;&gt;Tenants docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>SDK</category>
      <category>Dashboard</category>
      <category>Docs</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Free DMARC monitoring and a weekly digest</title>
      <link>https://groundmail.dev/changelog/#free-dmarc-monitoring-and-a-weekly-digest</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#free-dmarc-monitoring-and-a-weekly-digest</guid>
      <description>&lt;p&gt;Turn on DMARC monitoring from any domain's page (or POST /domains/{id}/dmarc) and add the report address to your DMARC record, by hand or in one click with a connected DNS provider. Groundmail reads the daily reports from Gmail, Outlook, Yahoo and others and shows who sends as your domain, grouped by provider, with unknown senders flagged as possible spoofing; DMARC, SPF and DKIM pass rates by week; and when it's safe to move from p=none to quarantine. A weekly digest email sums up each domain. Also groundmail.dmarc in the SDK, groundmail dmarc status in the CLI and the get_dmarc_report MCP tool. Free on every plan, and for any domain at groundmail.dev/tools/dmarc-monitoring.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/tools/dmarc-monitoring/&quot;&gt;DMARC monitoring&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/dmarc&quot;&gt;DMARC docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <category>SDK</category>
      <category>MCP</category>
      <category>Docs</category>
      <category>Free tools</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Test keys and the mailbox simulator</title>
      <link>https://groundmail.dev/changelog/#test-keys-and-the-mailbox-simulator</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#test-keys-and-the-mailbox-simulator</guid>
      <description>&lt;p&gt;Test keys (gm_test_…) work like live keys, with the same checks, templates, idempotency and webhooks, but never deliver and count toward nothing. Simulator addresses at simulator.groundmail.dev (delivered@, bounce@, block@, complaint@, suppressed@, delayed@; bounce+anything@ works) give that outcome and its real webhooks with any key, so you can test bounce and complaint handling safely. Test emails carry test: true and have a Test badge and filter on the Emails page. Create a test key on the API keys page, with groundmail keys create --test, or apiKeys.create({ test: true }).&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/developers/&quot;&gt;For developers&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/testing&quot;&gt;Testing docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>SDK</category>
      <category>MCP</category>
      <category>Dashboard</category>
      <category>Docs</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Switch from SendGrid, Postmark or Mailgun, step by step</title>
      <link>https://groundmail.dev/changelog/#switch-from-sendgrid-postmark-or-mailgun-step-by-step</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#switch-from-sendgrid-postmark-or-mailgun-step-by-step</guid>
      <description>&lt;p&gt;The Import page now walks the whole switch: import, verify domains, a test send, pointing your app at Groundmail, and a cutover check on the last 24 hours of sending. Each imported domain shows the exact DNS changes against what it publishes today (edit your SPF record, keep your DMARC record, leave the old provider's DKIM in place until the cutover). Bounces that were really blocks on the old provider's servers are no longer imported, partial opt-outs become product email opt-outs, and templates keep their unsubscribe links. Reports are kept and download as CSV or JSON (GET /migrations/{id}/report, groundmail migrate report, the get_import_report MCP tool). Sending a lot? We'll do the switch with you.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/migrate/&quot;&gt;Migration guides&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/migrations&quot;&gt;Import docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <category>SDK</category>
      <category>MCP</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>New accounts ramp up as they send clean mail</title>
      <link>https://groundmail.dev/changelog/#new-accounts-ramp-up-as-they-send-clean-mail</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#new-accounts-ramp-up-as-they-send-clean-mail</guid>
      <description>&lt;p&gt;The new-account daily limit now grows with your sending instead of by calendar days. Paid accounts start at 1,000 product and 3,000 transactional recipients a day, counted separately so a product send never uses up the room your sign-in codes need, and the limit doubles each day after you use at least half of it with bounces under 2% and complaints under 0.1%. Sends over it get a 429 with code daily_ramp_limit and details.resets_at. Your stage and today's usage are in Settings → Billing.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/sending-limits&quot;&gt;Sending limits docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>SDK</category>
      <category>Dashboard</category>
      <category>Docs</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Groundmail validation</title>
      <link>https://groundmail.dev/changelog/#groundmail-validation</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#groundmail-validation</guid>
      <description>&lt;p&gt;Every send now holds back recipients that cannot receive email before they bounce: addresses that cannot exist, domains with no mail server, and addresses that hard-bounced for a Groundmail sender in the last 90 days. The rest of the email still goes out, and the response, the email object and the Emails page say who was held back and why. New POST /validate checks one address for signup forms: valid, risky or invalid, with reasons, a typo suggestion (gmial.com → gmail.com) and disposable and role flags. Free. Also groundmail.validate() in the SDK, groundmail validate in the CLI and the validate_email MCP tool.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/deliverability/&quot;&gt;Deliverability&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/validation&quot;&gt;Validation docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>SDK</category>
      <category>MCP</category>
      <category>Dashboard</category>
      <pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Request dedicated IPs on any plan</title>
      <link>https://groundmail.dev/changelog/#request-dedicated-ips-on-any-plan</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#request-dedicated-ips-on-any-plan</guid>
      <description>&lt;p&gt;Any account owner can now request dedicated IPs in Settings → Billing, not just Scale accounts. Dedicated IPs run on Scale, so below Scale we agree the plan change with you first. They cost $50 per IP per month, Scale 500,000 and above includes one, and nothing is charged until an IP goes live.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/deliverability/&quot;&gt;Deliverability&lt;/a&gt; · &lt;a href=&quot;https://groundmail.dev/guides/shared-vs-dedicated-ip/&quot;&gt;Shared vs dedicated IPs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>Infra</category>
      <pubDate>Sat, 17 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Live dashboard updates, and a faster dashboard</title>
      <link>https://groundmail.dev/changelog/#live-dashboard-updates-and-a-faster-dashboard</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#live-dashboard-updates-and-a-faster-dashboard</guid>
      <description>&lt;p&gt;Home, Emails, Inbound, Domains, Suppressions, automation runs and Exports now update on their own as things happen, so a bounce or a newly verified domain shows up without a reload. Pages also load much faster on accounts with a lot of email.&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Sat, 17 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Bounce types: hard vs block</title>
      <link>https://groundmail.dev/changelog/#bounce-types-hard-vs-block</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#bounce-types-hard-vs-block</guid>
      <description>&lt;p&gt;Bounced emails now say why with bounce_type. hard means the address cannot receive mail, so it is added to your suppression list. block means the receiving server refused the message because of the sending IP's or domain's reputation or policy: the address is fine, it is not suppressed, and it does not count toward your bounce rate. On the email object, email.bounced and email.failed webhooks, CSV exports and the Emails page.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/webhooks&quot;&gt;Webhooks docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>SDK</category>
      <category>Dashboard</category>
      <pubDate>Sat, 17 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Import from SendGrid, Postmark and Mailgun (Beta)</title>
      <link>https://groundmail.dev/changelog/#import-from-sendgrid-postmark-and-mailgun-beta</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#import-from-sendgrid-postmark-and-mailgun-beta</guid>
      <description>&lt;p&gt;Paste an API key from your current provider under Import and Groundmail brings over your suppressions (bounces, complaints, unsubscribes), templates with their variables, sending domains with the DNS records to publish, and webhooks with their events mapped. You get a summary of what needs attention, the send-code change for your stack and a prompt for your coding agent. The key is used once and never stored. Also available as groundmail migrate, the import_from_provider MCP tool and POST /migrations.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/migrate/&quot;&gt;Migration guides&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/migrations&quot;&gt;Import docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <category>SDK</category>
      <category>MCP</category>
      <pubDate>Fri, 16 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Dedicated IPs on Scale</title>
      <link>https://groundmail.dev/changelog/#dedicated-ips-on-scale</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#dedicated-ips-on-scale</guid>
      <description>&lt;p&gt;Scale plans (100,000+ emails a month) can now add dedicated sending IPs for $50 per IP per month, and Scale 500,000 and above includes one. Each IP is warmed with you before traffic moves, can carry reverse DNS on your own domain, and is billed only once it goes live. Request them in Settings → Billing. Update: since October 17, any plan can request them.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/deliverability/&quot;&gt;Deliverability&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>Infra</category>
      <pubDate>Fri, 16 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Official SDKs for Python, PHP, Ruby, Laravel and Symfony Mailer</title>
      <link>https://groundmail.dev/changelog/#official-sdks-for-python-php-ruby-laravel-and-symfony-mailer</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#official-sdks-for-python-php-ruby-laravel-and-symfony-mailer</guid>
      <description>&lt;p&gt;pip install groundmail (with a Django email backend), gem install groundmail (with an ActionMailer delivery method for Rails), composer require groundmail/groundmail for PHP, groundmail/laravel for a Laravel mail transport and facade, and groundmail/symfony-mailer for a Symfony Mailer transport. They join the Node and Go SDKs and wrap the same REST API, so from / to / subject / html work the same in every language. Code snippets in the dashboard now include Python, PHP and Ruby.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/developers/&quot;&gt;For developers&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/sdks/python&quot;&gt;Python&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/sdks/php&quot;&gt;PHP&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/sdks/ruby&quot;&gt;Ruby&lt;/a&gt;&lt;/p&gt;</description>
      <category>SDK</category>
      <category>Docs</category>
      <category>Dashboard</category>
      <pubDate>Fri, 16 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Scoped MCP connections, and OAuth sign-in from Cursor</title>
      <link>https://groundmail.dev/changelog/#scoped-mcp-connections-and-oauth-sign-in-from-cursor</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#scoped-mcp-connections-and-oauth-sign-in-from-cursor</guid>
      <description>&lt;p&gt;When an MCP client connects to the hosted server, choose what it may do: Full, Send only, Read only, or specific scopes. Connections use expiring tokens and appear under Settings → CLIs &amp;amp; agents, where you can revoke them. Cursor now signs in with OAuth too: add the server URL with no API key.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/mcp/&quot;&gt;MCP server&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/ai/mcp&quot;&gt;MCP docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>MCP</category>
      <category>Dashboard</category>
      <pubDate>Fri, 16 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Scoped API keys</title>
      <link>https://groundmail.dev/changelog/#scoped-api-keys</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#scoped-api-keys</guid>
      <description>&lt;p&gt;Create API keys with only the access they need: Full, Send only, Read only, or pick scopes yourself, and optionally limit a key to sending from specific verified domains. A key without the scope a request needs gets 403 insufficient_scope naming the scope.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/api-keys&quot;&gt;API keys docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>Dashboard</category>
      <pubDate>Fri, 16 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>OAuth sign-in for the CLI and agents</title>
      <link>https://groundmail.dev/changelog/#oauth-sign-in-for-the-cli-and-agents</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#oauth-sign-in-for-the-cli-and-agents</guid>
      <description>&lt;p&gt;groundmail login now signs in with OAuth (device flow): scoped access tokens that expire after an hour, refresh tokens kept in your OS keychain, and groundmail auth token for scripts. See and revoke every signed-in CLI and agent under Settings → CLIs &amp;amp; agents.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/cli&quot;&gt;CLI docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>Dashboard</category>
      <category>SDK</category>
      <pubDate>Fri, 16 Oct 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Paste HTML templates in the dashboard</title>
      <link>https://groundmail.dev/changelog/#paste-html-templates-in-the-dashboard</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#paste-html-templates-in-the-dashboard</guid>
      <description>&lt;p&gt;Create a template as Paste HTML (or keep using the visual builder). Raw-HTML templates now include preheader and Test send, and switching to the visual builder asks for confirmation before deleting your HTML.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/templates/&quot;&gt;Templates&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Automation dry-run tests</title>
      <link>https://groundmail.dev/changelog/#automation-dry-run-tests</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#automation-dry-run-tests</guid>
      <description>&lt;p&gt;Test a draft or paused automation from the canvas without activating it. Dry-run skips delays/waits and stubs email/SMS so you can verify the flow before going live.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/automations/&quot;&gt;Automations&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Production sending on Free</title>
      <link>https://groundmail.dev/changelog/#production-sending-on-free</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#production-sending-on-free</guid>
      <description>&lt;p&gt;After you verify a domain and add a payment method (no charge until you upgrade), Free includes real sends to any recipient — 3,000/mo · 100/day · 1 domain. Upgrade when you need more volume.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/pricing/&quot;&gt;Pricing&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>Infra</category>
      <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Public Nodemailer transport source</title>
      <link>https://groundmail.dev/changelog/#public-nodemailer-transport-source</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#public-nodemailer-transport-source</guid>
      <description>&lt;p&gt;groundmail-nodemailer now ships the full transport implementation in its public GitHub repo (not a re-export stub). Prefer import from groundmail-nodemailer; groundmail/nodemailer still works.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/frameworks/node&quot;&gt;Node docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>SDK</category>
      <pubDate>Tue, 04 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Username login and profile settings</title>
      <link>https://groundmail.dev/changelog/#username-login-and-profile-settings</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#username-login-and-profile-settings</guid>
      <description>&lt;p&gt;Sign in with your email or a username on the password form. Settings → Profile lets you set a username, update your name, and set or change your password with an email verification code.&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Tue, 04 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Clerk and Payload email adapters</title>
      <link>https://groundmail.dev/changelog/#clerk-and-payload-email-adapters</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#clerk-and-payload-email-adapters</guid>
      <description>&lt;p&gt;Deliver Clerk email.created webhooks with groundmail-clerk, and wire Payload 3 email with groundmailAdapter from groundmail-payload. Guides for both are in the docs.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/guides/clerk&quot;&gt;Clerk guide&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/guides/payload&quot;&gt;Payload guide&lt;/a&gt;&lt;/p&gt;</description>
      <category>SDK</category>
      <pubDate>Mon, 03 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Auth.js / NextAuth email provider</title>
      <link>https://groundmail.dev/changelog/#auth-js-nextauth-email-provider</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#auth-js-nextauth-email-provider</guid>
      <description>&lt;p&gt;Drop-in magic-link provider for Auth.js — npm install groundmail-authjs, add Groundmail({ from }) to providers, set AUTH_GROUNDMAIL_KEY. Same pattern as other Auth.js email providers; requires a database adapter.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/guides/authjs&quot;&gt;Auth.js guide&lt;/a&gt;&lt;/p&gt;</description>
      <category>SDK</category>
      <pubDate>Mon, 03 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Guided setup — test, domain, and code in one place</title>
      <link>https://groundmail.dev/changelog/#guided-setup-test-domain-and-code-in-one-place</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#guided-setup-test-domain-and-code-in-one-place</guid>
      <description>&lt;p&gt;New accounts land in a full-screen setup flow: five quick questions, then a hub with the three things that actually matter — send a test email, connect your sending domain, and add Groundmail to your code. Do them in any order. The domain and the code both finish in the background, so you can start them and come back; the hub keeps their status and is always reachable from Guided setup in the sidebar. On the code step, connect the Groundmail GitHub App and an agent installs the SDK, adds the environment variable, wires one real send path, and opens a pull request you review like any other — inference is on us, no API key needed. Prefer to wire it up by hand? That tab is still there.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/quickstart&quot;&gt;Quickstart&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <pubDate>Mon, 03 Aug 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Visual template builder v2</title>
      <link>https://groundmail.dev/changelog/#visual-template-builder-v2</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#visual-template-builder-v2</guid>
      <description>&lt;p&gt;Block editor with slash menu, drag reorder, versioned publish and restore, starter gallery, global CSS, read-only Code tab, and templates push from git. Sends resolve the published version. Draft edits never break live traffic.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/templates/&quot;&gt;Templates&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/templates&quot;&gt;Templates docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>Docs</category>
      <pubDate>Fri, 31 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Official Go SDK</title>
      <link>https://groundmail.dev/changelog/#official-go-sdk</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#official-go-sdk</guid>
      <description>&lt;p&gt;The Node client is no longer the only one: go get github.com/Groundmail/groundmail-sdks/go. It wraps the same REST contract, so from / to / subject / html works the same everywhere. Python, PHP and Ruby clients are coming soon; until then, the REST API and SMTP relay work from any language. Update: the Python, PHP and Ruby SDKs shipped on October 16.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/sdks/go&quot;&gt;Go docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>SDK</category>
      <category>Docs</category>
      <pubDate>Wed, 29 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Account-scoped SMTP relay</title>
      <link>https://groundmail.dev/changelog/#account-scoped-smtp-relay</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#account-scoped-smtp-relay</guid>
      <description>&lt;p&gt;Create SMTP credentials in the dashboard and send through smtp.groundmail.dev with the same domain verification and billing rules as POST /emails — for Supabase custom SMTP, Clerk, and legacy apps.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/smtp/&quot;&gt;SMTP relay&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/smtp&quot;&gt;SMTP docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>API</category>
      <category>Dashboard</category>
      <pubDate>Wed, 29 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Supabase Auth integration guide</title>
      <link>https://groundmail.dev/changelog/#supabase-auth-integration-guide</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#supabase-auth-integration-guide</guid>
      <description>&lt;p&gt;Docs guide for wiring Supabase Send Email hooks to Groundmail via an Edge Function — signup, reset, magic link, and invite mail on your domain.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/guides/supabase&quot;&gt;Supabase guide&lt;/a&gt;&lt;/p&gt;</description>
      <category>Docs</category>
      <pubDate>Wed, 29 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Webhook test events in the dashboard</title>
      <link>https://groundmail.dev/changelog/#webhook-test-events-in-the-dashboard</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#webhook-test-events-in-the-dashboard</guid>
      <description>&lt;p&gt;Send signed test payloads from /webhooks, see per-endpoint HTTP results, and verify Groundmail-Signature handling without leaving the app.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/webhooks&quot;&gt;Webhooks docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <pubDate>Wed, 29 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Inbound MX on DNS apply</title>
      <link>https://groundmail.dev/changelog/#inbound-mx-on-dns-apply</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#inbound-mx-on-dns-apply</guid>
      <description>&lt;p&gt;Apply DNS now provisions inbound MX for Cloudflare and GoDaddy when inbound is enabled on a domain. GoDaddy credentials can be stored in Settings → Integrations like Cloudflare.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/inbound/&quot;&gt;Inbound email&lt;/a&gt; · &lt;a href=&quot;https://groundmail.dev/features/integrations/&quot;&gt;Integrations&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <pubDate>Wed, 29 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Smithery listing</title>
      <link>https://groundmail.dev/changelog/#smithery-listing</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#smithery-listing</guid>
      <description>&lt;p&gt;Groundmail MCP is published on Smithery with OAuth connect for agent toolchains.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/mcp/&quot;&gt;MCP server&lt;/a&gt;&lt;/p&gt;</description>
      <category>MCP</category>
      <category>Docs</category>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Hosted MCP OAuth</title>
      <link>https://groundmail.dev/changelog/#hosted-mcp-oauth</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#hosted-mcp-oauth</guid>
      <description>&lt;p&gt;Remote MCP clients can authorize via OAuth at app.groundmail.dev and connect to mcp.groundmail.dev without pasting API keys.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/mcp/&quot;&gt;MCP server&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/ai/mcp&quot;&gt;MCP docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>MCP</category>
      <category>API</category>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Starter template gallery</title>
      <link>https://groundmail.dev/changelog/#starter-template-gallery</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#starter-template-gallery</guid>
      <description>&lt;p&gt;Five published starters (password reset, verification, welcome, receipt, team invite) with copy-into-account from the templates dashboard.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/templates/&quot;&gt;Templates&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>Docs</category>
      <pubDate>Mon, 27 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>React Email guide</title>
      <link>https://groundmail.dev/changelog/#react-email-guide</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#react-email-guide</guid>
      <description>&lt;p&gt;Docs guide for sending with the react field, peer dependencies, and preview workflow using create-email.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/guides/react-email&quot;&gt;React Email guide&lt;/a&gt;&lt;/p&gt;</description>
      <category>Docs</category>
      <pubDate>Mon, 27 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Hosted MCP + expanded tools</title>
      <link>https://groundmail.dev/changelog/#hosted-mcp-expanded-tools</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#hosted-mcp-expanded-tools</guid>
      <description>&lt;p&gt;mcp.groundmail.dev serves streamable HTTP MCP with Bearer gm_ auth. MCP tool surface expanded across domains, webhooks, templates, and deliverability.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/mcp/&quot;&gt;MCP server&lt;/a&gt;&lt;/p&gt;</description>
      <category>MCP</category>
      <category>API</category>
      <pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Agent Skills</title>
      <link>https://groundmail.dev/changelog/#agent-skills</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#agent-skills</guid>
      <description>&lt;p&gt;Official Agent Skills for Cursor and compatible agents, plus /ai/agent-skills docs and .well-known discovery.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.groundmail.dev/ai/agent-skills&quot;&gt;Agent Skills docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Docs</category>
      <category>MCP</category>
      <pubDate>Sat, 25 Jul 2026 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Inbound email dashboard</title>
      <link>https://groundmail.dev/changelog/#inbound-email-dashboard</link>
      <guid isPermaLink="true">https://groundmail.dev/changelog/#inbound-email-dashboard</guid>
      <description>&lt;p&gt;Received messages list and detail view for domains with inbound enabled, with email.received webhooks.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://groundmail.dev/features/inbound/&quot;&gt;Inbound email&lt;/a&gt; · &lt;a href=&quot;https://docs.groundmail.dev/inbound&quot;&gt;Inbound docs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Dashboard</category>
      <category>API</category>
      <pubDate>Fri, 24 Jul 2026 12:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
