A forwarder is a pointer. A mailbox is the place.

Forwarding copies mail onward and stops. That is fine when the only job is “put this in the inbox I already read.” It is a bad fit when the address is the project’s — when someone has to reply, when the next person needs the history, when the mail is work. Kontacts is the mailbox. Forwarding is an optional copy.

The four words people mix up

MailboxThe project's shared inbox. One per project. Everyone on the project can see the history. Somebody leaving takes nothing with them.
AliasAn extra From/To name on that same mailbox — hello@, support@, billing@. Mail to it lands in the existing inbox; the composer can send as it. It is not a second mailbox and not a forward route.
ForwardingAn optional copy to a verified personal mailbox. The project inbox still stores the original. Useful so nobody has to log in to notice that something arrived — not a substitute for the mailbox.
Catch-allOptional, and off by default. Counts every address at the domain as declared for issue routing. It does not decide whether mail is received — undeclared mail is stored and shown either way.

What each job actually needs

Forwarding compared with a Kontacts project mailbox
JobA forwarderA Kontacts mailbox
Receive mail at hello@ / support@Yes — then it leaves.Yes — and it stays, where the team can see it.
Reply from the project addressNot really. Reply-To gymnastics, or your personal From leaks.Yes, from the inbox. No IMAP — you reply in the dashboard, not in Thunderbird.
Team sees the historyNo. The copy died in one person's mailbox.Yes. The address was never theirs.
Send from an API keyNo.Yes. Mint a key under Settings → API keys.
GitHub issue routingNo.A mode. Off by default. Mail to the addresses on your list opens a GitHub issue.
IMAP / desktop clientNo.No. We stay on Resend. There is no IMAP vendor.
Newsletters or an AI assistantSometimes, as a different product.Newsletters: a first slice on a verified custom domain — audience, subscribe, Markdown draft, send. Not a Beehiiv replacement. Inbox AI can suggest a draft reply on a thread; it is not an autonomous writer.

What Kontacts already is — and what it is becoming

Today the project gets a real inbox on a domain you point at us. Mail is stored. You can reply inside a thread from the dashboard. You can send a new message, or mint a project API key. You can optionally forward a copy to a personal mailbox, and you can optionally turn on GitHub issue routing. Publish a meeting type for a booking page; drop a form on your site. That is the product.

It is becoming more of a mailbox, not more of a forwarder. Reply exists; IMAP does not. Newsletters exist as a first slice on a verified custom domain — Newsletters in the dashboard — not as a Beehiiv clone. Inbox AI can suggest a draft reply on a thread; send still needs approval. It is not an autonomous assistant. We stay on Resend. Claiming a full hosted mail client would be a lie — do not read this page as that promise.

When you do turn routing on, mail to the addresses on your list opens a GitHub issue. Mail that fails sender authentication is held in the inbox and marked quarantined instead. The optional catch-all counts every address as declared; it does not change whether the message is received.

When forwarding is the right tool

If the only job is “put support@ in the inbox I already read,” Kontacts can forward a copy— and ImprovMX or Cloudflare Email Routing will do that job with less product around it. Use a forwarder when nothing downstream of “it arrived” needs to happen.

Use a mailbox when the address is the project’s, the reply has to leave from that address, and the next person on the team has to see what was said.

Give the project a mailbox, not a pointer.

Get started