Project
PostStack
The email API I built after a year of stitching three vendors together. Transactional mail, newsletters and inbound mail in one product, with a TypeScript SDK, a real test mode and hosting in the EU.
- Bun
- Hono
- Postgres
- Redis
- BullMQ
- MCP
What it is#
PostStack is an email API for developers. Transactional mail, newsletters and inbound mail run in one product, with one API key, one suppression list and one set of contacts.
I built it because I had been buying those three things from three vendors. They share the same contacts and the same deliverability problems, and the code I wrote to keep three vendors in agreement was the worst code in the project.
What it solves#
Plenty of small teams still buy email in three pieces: Resend for transactional mail, Mailchimp for newsletters and Postmark for inbound. Then they write code to keep the three in sync. In one of my own projects that was about 600 lines of TypeScript and a Postgres table. With PostStack it went away.
With everything in one place:
Someone who unsubscribes or bounces is blocked everywhere, not just in one of the systems.
A reply to an email lands on the same contact, without a webhook worker you wrote yourself.
Automations start on events from the same platform instead of a cron job polling three services.
There is one bill and one agreement.
Decisions that shaped it#
A TypeScript SDK with proper types. The SDK was designed alongside the API, so requests, responses and errors are typed the way you use them, not generated afterwards.
A real test mode. Send with a test key and PostStack runs the whole send, renders the template, validates the address and fires the webhooks, but nothing leaves the platform and nothing is billed. Your CI can test against the real API.
Deliverability built into the product. SPF, DKIM and DMARC alignment, blocklist monitoring, handling of bounces and complaints, and warm-up of new domains. It's the dull work that decides whether a password reset reaches the inbox.
An MCP server. PostStack comes with a Model Context Protocol server, so Claude Code can send mail, check deliverability and look into problems without anyone opening the dashboard.
How it's built#
Bun with Hono for the API, Postgres for contacts and events, and Redis with BullMQ for the queues.
I use it myself. Everything micci.dk sends goes through PostStack: the receipt when you write to me, the alerts I get, quotes, invoices and reminders.
Read more#
The full argument for one product instead of three is in the blog post Building the email API I wanted but couldn't buy.
Other projects
Kuvert
Gift cards, punch cards and tickets that Danish businesses sell from their own website. Built and run together with Adsmark.
HostStack
The European hosting platform I built because I wanted Render's ease and Hetzner's prices on the same invoice. Git push, deploys without downtime, managed Postgres and Redis, billed in euros.
Skyskraber
A 2D chat world for Danish-speaking adults, in the tradition of Habbo, Netstationen and 3Dbyen. The rooms are floors in a tower. Built and run by one developer.








