Identity Mail is an email client where every address is a persona. Each company gets its own address, the inbox knows which one they wrote to, and replies go out as the right one without me thinking about it.
Most people have one email address and hand it to every shop, app and newsletter they ever sign up to. After a few years that address is in hundreds of databases. Some get breached, some get sold, and the spam that follows has no return label.
Aliases are the usual fix: a different address per company. The trouble is that email clients treat them as an afterthought. They all land in one pile, and when you reply you have to remember which address you used, or you send from your main one and undo the whole point.
Spam arrives at the same address as everything else, so there's no way to trace it back.
Unsubscribe links get ignored. The only way to stop them all is a new address for everything.
Write back from the wrong address and the company now has your real one.
Most alias services want you to create each one in a dashboard before you can use it.
The domain takes mail for any address at all. Signing up to Spotify? Type spotify@my-domain into their form. There's nothing to set up first. The first email to arrive creates the identity, gives it a colour, and files it.
The inbox is organised by who the mail was for, not just who sent it. Colour is the only bright thing in the interface, so you see which persona a conversation belongs to before you read a word of it.
This is the part the whole app turns on. When you write to someone, the From address is picked for you, and the app says why. It checks the evidence from strongest to weakest:
Use the identity you used last time.
Every sent email teaches the app a preferred identity for that domain.
amazon.de gets the identity you use for amazon.co.uk.
Fall back to the default, and suggest a new identity named after them.
If an identity starts getting spam, you know exactly who let it out. Disable it and the mail is refused at the edge, before it reaches the server. To the sender it looks like the address never existed. Every other identity carries on as normal.
Five hundred identities bring in about twelve thousand emails a month. Most of it is receipts, delivery updates and marketing. Each message is tagged as it arrives by a small AI model, with fixed rules for the cases it kept getting wrong. Quiet tags stay out of the main inbox and never buzz your phone.
Spam scoring learns from your Spam and Not spam taps, and messages that look like phishing carry a warning banner. The scoring is checked against a hand-labelled set of 54 real emails before any change ships.
Dashed tags are quiet: kept, searchable, but no notification.
Email servers are hard to run well, so there isn't one. Cloud services handle the parts of email that are easy to get wrong, and everything clever lives in the app.
Cloudflare Email Routing accepts mail for any address on the domain.
An Email Worker applies the kill switch and saves every message to storage first, so nothing is lost if the server is down.
A Go backend parses it, threads it, assigns the identity, scores spam and tags it into Postgres.
A Next.js web app, and a SwiftUI iPhone app with a home-screen widget and push.
Replies go out through Resend, from whichever identity was picked.
It runs on a small home Kubernetes cluster with two copies of the API, so updates go out without dropping mail.
An address per company on a catch-all domain isn't new for me. I've run it for years on Zoho, and receiving was never the problem. Replying was. To answer IKEA from ikea@, that address had to be set up as a send-as identity in Zoho, then again in Apple Mail, then again on the phone. Nobody does that for five hundred addresses, so replies went out from the main address, or didn't go out at all.
The new apps fill that gap. They already know every alias, because every alias is just an address mail has arrived at, and they pick the right one when you reply.