← All releases

New

  • blog: add "Send Your First Email in 5 Minutes" getting started tutorial
  • blog: add "Why We Chose Rust for Transactional Email" post
  • ci: add Python SDK publish workflow with PyPI trusted publisher
  • dashboard: add animated SVG icon system for UI state feedback
  • dashboard: animated SVG icon system for UI state feedback ([#icons](https://github.com/kalle-works/euromail.dev/issues/icons))
  • dashboard: one-click Cloudflare DNS setup via Domain Connect
  • dashboard: personalized code examples in onboarding with API key pre-filled
  • docs: add sidebar navigation with TOC and sibling page links #321
  • domains: configurable sending subdomain for domain reputation isolation
  • video: add procedurally generated ambient audio track
  • video: add Remotion marketing video project
  • video: design polish โ€” iconic SVGs, centered grid, ambient audio ([#polish](https://github.com/kalle-works/euromail.dev/issues/polish))

Fixed

  • dashboard: correct loading spinner rotation origin
  • dashboard: redesign loading icon from spinner to envelope with pulsing dots
  • docs: use consistent X-EuroMail-Api-Key header and update DNS docs
  • domain-connect: add txtConflictMatchingMode to DKIM record
  • domain-connect: use Prefix txtConflictMatchingMode with v=DKIM1 prefix
  • landing: correct Go SDK import path to kalle-works/euromail-go
  • landing: hide nginx version from response headers
  • landing: update SDK links to standalone repos, add Python SDK
  • security: remediate CSO audit findings
  • tests: add missing provider_warmup_limits field and suppress clippy type_complexity
  • tests: correct remaining CREATED -> ACCEPTED assertion in quota overage test
  • tests: correct status codes and suppression reason in integration tests
  • worker: seed warmup state for configured sending IPs on startup