Coffer

Active

SaaS · Early access · Started Sep 2026

Coffer screenshot

The problem

Forwarding works right up to the second person. You forward hello@ to two private inboxes and it holds for a week. Then two people answer the same customer, in different words, an hour apart. A request sits for three days because everyone assumed someone else took it. Someone leaves, and the history of every conversation leaves with them.

None of this is a discipline problem. A forwarded mailbox has no owner, so ownership lives in somebody's head.

The solution

Coffer puts every shared address in one list the whole team reads. Every conversation has one owner, visible to everyone. The reply leaves from the address the customer wrote to, and the history stays with the mailbox — not with whoever happened to answer.

I'm the first customer: five products, each with its own support@ and hello@, which is ten mailboxes for one person.

How it works

  1. Connect the mailboxes you already have — Gmail, Microsoft 365 or plain IMAP; nothing to forward, nothing to migrate
  2. Triage together — every conversation lands in one list with its mailbox color, its owner and its state; assign with one keystroke
  3. Keep the context next to the thread — tags, internal notes and a timeline of who did what, visible to the team and never to the contact

Key features

  • One owner per conversation — "unassigned" is a view, not a black hole
  • Internal notes — agree on the answer beside the thread, then send one reply
  • Close with an outcome — resolved or not resolved, so closed means something
  • Keyboard first — j/k to move, a to assign, e to close
  • Spam in layers — provider verdicts, your own rules and sender blocking
  • API from day one — your own code can read the inbox too

Current status

Private preview at coffer.email — IMAP sync, replies from the shared address, team invitations and spam handling work. Request access and a person writes back.

Next.js 15TypeScriptPrismaPostgreSQLIMAPCloudflare R2Firebase AuthTailwind CSS