Changelog

A day-by-day log of everything we ship

January 31, 2026

  • Migrated most forms to use Formisch and a slightly revised design system
  • Deleted a lot of old code (removed old dependencies, unused ESPs, etc.)
  • Completely migrated off of DNSimple in favor of Cloudflare
  • Fixed some broken links in our KYC disablement emails
  • We now have an admin action for ESPSuppression to allow removing/purging that suppression from the backing ESP
  • Cleaned up a whole bunch of docs
  • Start to require/add a custom CNAME for tracking domains for larger senders to derisk our own deliverability
  • Start exposing reasons why a subscriber is blocked by the firewall to authors

January 30, 2026

  • Removed redis requirement from demo to cut down on 500s

January 29, 2026

  • Fix bug where tags could not be programmatically set for certain weird billing cases
  • Fix bug where some automation actions had no label set for them
  • Fix bug where invoices were showing in $$$ regardless of currency
  • Fix bug where we allowed people to bypass the CSS billing constraints via API
  • Started running the email analytics cacher more often now that it's cheap

January 28, 2026

  • We now only see newsletters in the KYC queue if they've filled out the /home questionnaire after being disabled

January 27, 2026

  • Moved the Snippets API to be public and added support for it within the CLI
  • Fixed bug with validation of gift subscription metadata
  • Improved performance for in-app search
  • Improved performance for email event analytics

January 24, 2026

  • Merged in a change to embedded checkout to allow better plexing between monthly/annual
  • Redesigned callouts to be less visually chaotic
  • Refactored firewall for improved functionality/productivity

January 23, 2026

  • Added initial (janky) support for surveys in the archives

January 22, 2026

  • Fixed bug where survey tags weren't validating properly within tiptap
  • Archive searches now respect quotes for exact matching

January 21, 2026

  • Bumped up mypy + django-stubs pretty heavily to yield some performance benefits

January 17, 2026

  • The mobile variant of dialogs now triggers at a narrower viewport
  • Expanded the TTL for Cleantalk responses from 3 to 30 days
  • Moved QR code generation serverside to fix bug where icons weren't being embedded

January 15, 2026

  • Migrated from ImprovMX to Cloudflare email workers for routing @buttondown.com
  • Disabled users are now prompted in-app to answer questions about their newsletters to help out KYC
  • Migrated some straggling domains' NS servers (but not ownership) from DNSimple to Cloudflare
Buttondown is the last email platform you’ll switch to.
Changelog