Changelog

Honest notes on what shipped — API, dashboard, and docs.

Updated branding

  • Launched the Bauhaus / building-block visual language across marketing and product UI
  • Ink CTAs, hard shadows, DM Sans + IBM Plex Mono, and the shared Logo treatment
  • Replaces the older green / Geist branding on public surfaces

Webhook match filters

  • Webhooks can match an entire verified domain, listed subdomains, or listed from addresses
  • Does not consume extra domain slots — still one verified parent per webhook
  • API: optional matchMode, matchHosts, and matchFroms on create/update

`html` and `text` accepted as send body aliases

  • POST /api/email/send accepts Resend-style `html` or `text` in addition to canonical `message`
  • Makes migrating from Resend easier — fewer hard fails when the field isn’t renamed yet
  • `message` remains the preferred field; first usable string among message → html → text wins

Forms product removed

  • Removed dashboard Forms UI, public form pages, and all /api/forms endpoints
  • Form submission data remains in the database for historical access
  • Canonical POST /api/email/send is unchanged

Templates product removed

  • Removed email templates CRUD, send-from-template APIs, builder UI, and public v1 templates endpoints
  • Database: dropped email_templates; kept historical email_logs.template_id without FK

`from` is required on send

  • Breaking: POST /api/email/send (and aliases / test) now require `from` in the request body
  • Custom domains still need verification; `sent-with@mail.notify.cx` remains allowed as the Notify platform sender
  • OpenAPI, docs, SDKs, and the API contract freeze updated to match

Docs knowledge graph & site integrity

  • Expanded framework guides, migrations, use cases, and recipes for common transactional jobs
  • Added honest compare pages (including Postmark) with clear “choose Notify if / choose them if” guidance
  • Removed Forms and React Email guides from public docs — Notify is send, webhooks, and logs

Marketing and docs aligned to the email API

  • Rewrote marketing site around transactional send + observe (SEO/AEO FAQs, compare pages, MCP overkill page)
  • Documented canonical POST /api/email/send across docs and OpenAPI
  • Added password-reset guide, DNS guides (Cloudflare, Route 53), error catalog, and Resend/SendGrid migration docs
  • Removed deprecated template documentation from the public docs surface

Product focus: send and observe

  • Sunsetting path for newsletter, automations, segments, analytics, and scheduled-email surfaces
  • Dashboard support ticket flow and domain verification UI improvements
  • Allow sending from subdomains of a verified parent domain
  • Raised practical message size handling (5k character limit fix)
  • Free-plan older-logs upgrade tease when history exists beyond 48 hours

Platform and delivery groundwork

  • Restored Notify as email infrastructure with domain-first sending and Stripe Billing
  • Node 24 runtime for Vercel and current supabase-js engine requirements
  • Ongoing domain verification and deliverability improvements