ALMOST

A weekend of work, and real gaps remain.

A shared inbox with team chat inside the thread: colleagues discuss a message beside it rather than in a separate application, and drafts are written together.

Promptfree, for everyone, and the only version there is
Build me a shared inbox with the discussion inside it, replacing Missive — and know what makes this ALMOST.

**The idea worth copying is chat attached to the thread.** Deciding what to reply happens somewhere; when that somewhere is a separate application, the decision and the record are permanently apart. What is hard is real-time delivery and threading that survives real mail.

STACK
- Node 20+ with Fastify, server-rendered HTML with vanilla JS for the live parts
- SQLite through better-sqlite3, WAL mode, with FTS5
- WebSockets for the chat, with a polling fallback
- Caddy in front

THE DATA MODEL
- conversations: id, mailbox_id, subject, status, assignee_id, created_at
- messages: id, conversation_id, direction, message_id, in_reply_to, references_json, from_address, body_html, body_stripped, created_at
- comments: id, conversation_id, author_id, body_md, created_at — **the chat, on the same thread as the mail, and impossible to send outward**
- drafts: id, conversation_id, body, updated_by, updated_at, version — shared, with a version so two people do not overwrite each other
- viewers: conversation_id, user_id, at, is_typing — in memory

THREADING, WHICH IS THE FIRST HARD PART
- Match on Message-ID, then In-Reply-To, then References. Only then subject plus participants, and **never subject alone** — two customers writing 'Re: my order' must not become one conversation
- Strip quoted history for display, keep the whole message, with a fixture per mail client because they all quote differently
- Detect automatic replies and bounces from their headers and never turn them into conversations

THE COMMENT THAT MUST NEVER GO OUT
- A comment and a reply are different objects, rendered so differently they cannot be confused, and the send path physically cannot take a comment
- That mistake is seen by the person it is about and no apology fixes it. Make it structurally impossible rather than carefully avoided

COLLABORATIVE DRAFTING
- A version per draft; a save against a stale version is rejected and the newer text shown, never silently overwritten
- Who is typing, shown live
- Full simultaneous editing needs a conflict-free replicated data type library — worth it only if two people genuinely write one reply at once, which is rarer than the feature list suggests

DELIVERY
- Comments written to the database first, then broadcast. Never the other way round
- A client-generated identifier on each, so a resend after a dropped connection deduplicates
- On reconnect, everything since the last known id, in order

AND THE REST
- Assignment, snooze with a wake time, canned replies by shortcut, and search with FTS5 respecting permissions inside the query
- Send from your own domain with SPF, DKIM and DMARC; monitor the age of the newest inbound message, because an inbox that quietly stops receiving is the worst failure here

WHAT MATTERS MOST
Threading, and a comment that cannot be sent. The first decides whether the inbox is usable; the second decides whether you keep the customer.

What you lose

  • Chat attached to the thread, so the discussion and the reply live in one place
  • Collaborative drafting, where two people write the same reply at once
  • Email threading that survives every client’s quoting style
  • Applications on every platform, kept in step

If you would rather not build

  • A shared mailbox with assignment, which is most of it for two people
  • Threading by Message-ID, which is the part everybody gets wrong

The escape hatch

open source · no votes, no paid placement

FreeScout

$0

A self-hosted shared inbox with assignment and notes.

freescout-help-desk/free-scoutfree · open source

Chatwoot

$0

Open-source support inbox across email, chat and social.

chatwoot/chatwootfree · open source

Why this verdict

our own opinion · changed only by a person

46/100

Verdict kinda at 46: the inbox is known work and the chat-on-thread idea is a foreign key. Real-time collaborative drafting is the part that is genuinely hard, and the entry says when to skip it.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.

Questions about Missive

answered from the record above

Is Missive free?

No — the plan we track is $18 a month. Productive at $18 per user per month billed monthly, around $14 annually.

Can you replace Missive by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 46 out of 100, build time a weekend. Read what you lose before you decide.

How much does Missive cost?

$18 a month on Productive — $216 a year. Recorded 14 Aug 2026.

What do you lose by replacing Missive?

Chat attached to the thread, so the discussion and the reply live in one place; Collaborative drafting, where two people write the same reply at once; Email threading that survives every client’s quoting style; Applications on every platform, kept in step. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Missive?

Yes: FreeScout, Chatwoot. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 29 in Customer support

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc