Posta: Run Your Own Email Sending API


When you’re launching a brand new SaaS application or service, you know it’s going to send emails. That means you’ve got to pick an email delivery service. Which API are you going to use to allow your new app to send transactional emails to the world? Luckily, the market is crowded with options: SendGrid, Mailchimp’s Mandrill, Amazon SES, Mailgun, Postmark, Mailersend – the list goes on. For most developers, dropping in an API key from one of these transactional providers is the path of least resistance. But what if you don't want to rely on a third-party vendor? What if you want -- or need -- to run your own email infrastructure?

Historically, self-hosting transactional email meant cobbling together a traditional Unix email stack. You’d spin up Postfix or Exim on a VPS, build a custom API wrapper to hand messages off to the MTA, maybe configure queues, maybe configure your application to relay via SMTP. It’s doable, but it’s a heavy lift. I know. I’ve done it. I still crazily run my own MTA to send this darn newsletter. And when you factor in the additional bits that go on top of “just sending email:” suppressions, tracking, logging, even email authentication, it gets more and more complicated. This is where a new free, open source platform option called Posta could help.

Enter Posta

Over on Reddit's r/SideProject, developer Chris Beckett recently introduced Posta, a fully open-source, self-hosted mail delivery platform designed for both incoming and outgoing email.

Positioned as your own self-hosted Postmark or Mailgun alternative, Posta brings the developer-friendly features of commercial email APIs to your own server. It’s released under the MIT license -- completely free with no paid tiers, message limits, or phone-home telemetries.

What can Posta do for you?

  • Flexible Sending: Includes both an SMTP server and an HTTP API, featuring separate credentials per application.
  • Built-in Deliverability Essentials: Generates required SPF, DKIM, and MX records for your domains and actively checks DNS until resolved. Outbound mail is automatically DKIM-signed.
  • Smart Queueing & Suppression: Handles retries for temporary failures and automatically routes hard bounces to a suppression list.
  • Detailed Logging & Webhooks: Offers complete delivery histories (including remote server SMTP responses) and signed webhooks for sent, delayed, failed, and held messages.
  • Inbound Handling: Processes incoming mail, passing payloads to an HTTP endpoint or forwarding over SMTP, with integrated spam/malware filtering via Rspamd/SpamAssassin and ClamAV.
  • Reputation Protection: Features IP pools and per-app sending limits so one noisy or misbehaving app won't ruin the IP reputation for the rest of your domain stack.
  • Optional Analytics: Built-in open and click tracking hosted on your own domain.

Under the Hood & Current Status

Posta is built with TypeScript on Bun, using PostgreSQL as its backend database. It is currently at version 0.1.0, so keep in mind a few early-stage caveats noted by the author:
  • No Docker container yet: Installation currently runs from source (though the setup guide is straightforward).
  • Authentication: The dashboard uses Clerk for authentication (the free tier easily covers self-hosters, though fully open-source auth lovers should take note).
  • Standard Deliverability Rules Apply: As always with self-hosted mail, Posta handles the software stack, but you still need a host that allows outbound traffic on Port 25 and an IP address with a clean reputation history.

Try It Out

This looks pretty neat. If you agree -- if you’ve been itching to regain full control over your transactional email stack without reinventing the wheel, you’ll want to head on over to posta.tacklabs.co.uk and check it out.